Function at 0x40f500
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4449a3
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x45e554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x38], eax
lea ebx, [eax + 0x234]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
lea edx, [eax - 0x10]
mov esi, dword [edx]
je 0x40f58f
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x40f56f
cmp dword [eax - 8], 0
jge 0x40f55f
push 0x80070057
call fcn.00402370
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [ebx]
mov word [eax], cx
jmp 0x40f58f
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x40f583
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push 2
push str.129
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40f977
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x40f977
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x40f977
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push 0x400
lea ecx, [ebp - 0xb8]
add edi, 0x28
lea esi, [eax - 0x28]
call fcn.0041f308
push 0
push esi
push edi
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0
call fcn.0041f3f4
push 0
push 0x1000
push 1
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x80]
call fcn.0041b0c4
push 0x1335ca
mov byte [ebp - 4], 1
call fcn.00435132
add esp, 4
mov byte [ebp - 0x14], 0
xor esi, esi
lea edi, [esi + 0x3e]
call fcn.00435111
cdq
idiv edi
cmp dl, 0x1a
jae 0x40f643
add dl, 0x41
jmp 0x40f655
cmp dl, 0x34
jae 0x40f64d
add dl, 0x47
jmp 0x40f655
cmp dl, 0x3e
jae 0x40f659
sub dl, 4
mov byte [ebp + esi - 0x34], dl
inc esi
cmp esi, 0x20
jl 0x40f631
mov ebx, dword [ebp - 0x68]
test bl, 1
jne 0x40f671
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f695
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x68]
add ecx, 4
mov dword [ebp - 0x58], ecx
test bl, 1
jne 0x40f6aa
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f6c8
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x68]
add ecx, 4
mov dword [ebp - 0x58], ecx
test bl, 1
jne 0x40f6dd
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f6fb
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x68]
mov eax, dword [ecx]
add ecx, 4
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x58], ecx
test bl, 1
jne 0x40f718
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f736
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x68]
mov eax, dword [ecx]
add ecx, 4
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x58], ecx
test bl, 1
jne 0x40f753
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f771
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x68]
mov eax, dword [ecx]
add ecx, 4
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x58], ecx
test bl, 1
jne 0x40f78e
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f7a6
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov ecx, dword [ebp - 0x58]
mov esi, dword [ecx]
add ecx, 4
push esi
mov dword [ebp - 0x58], ecx
call fcn.00413d07
add esp, 4
lea ecx, [ebp - 0x80]
mov edi, eax
push esi
push edi
call fcn.0041b955
mov ebx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
push eax
push esi
push edi
mov ecx, ebx
call fcn.00412d30
mov esi, eax
test esi, esi
jne 0x40f7dd
xor ecx, ecx
jmp 0x40f7f1
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f7e2
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebx + 0x234]
call fcn.00402170
push esi
call fcn.00413d10
push edi
call fcn.00413d10
add esp, 8
test byte [ebp - 0x68], 1
jne 0x40f81d
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f83b
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov ecx, dword [ebp - 0x58]
mov esi, dword [ecx]
add ecx, 4
push esi
mov dword [ebp - 0x58], ecx
call fcn.00413d07
add esp, 4
lea ecx, [ebp - 0x80]
mov edi, eax
push esi
push edi
call fcn.0041b955
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
push esi
push edi
call fcn.00412d30
mov esi, eax
test esi, esi
jne 0x40f86f
xor ecx, ecx
jmp 0x40f883
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f874
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebx + 0x238]
call fcn.00402170
push esi
call fcn.00413d10
push edi
call fcn.00413d10
add esp, 8
test byte [ebp - 0x68], 1
jne 0x40f8af
push dword [ebp - 0x6c]
push 4
call fcn.0041bd33
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
lea eax, [ecx + 4]
cmp eax, edx
jbe 0x40f8cd
sub ecx, edx
add ecx, 4
push ecx
lea ecx, [ebp - 0x80]
call fcn.0041b677
mov ecx, dword [ebp - 0x58]
mov esi, dword [ecx]
add ecx, 4
push esi
mov dword [ebp - 0x58], ecx
call fcn.00413d07
add esp, 4
lea ecx, [ebp - 0x80]
mov edi, eax
push esi
push edi
call fcn.0041b955
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
push esi
push edi
call fcn.00412d30
mov esi, eax
test esi, esi
jne 0x40f901
xor ecx, ecx
jmp 0x40f915
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f906
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebx + 0x23c]
call fcn.00402170
push esi
call fcn.00413d10
push edi
call fcn.00413d10
xor eax, eax
mov ecx, ebx
add esp, 8
cmp dword [ebp - 0x84], eax
sete al
mov dword [ecx + 0x224], eax
mov eax, dword [ebp - 0x88]
mov dword [ecx + 0x228], eax
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 0x22c], eax
lea ecx, [ebp - 0x80]
call fcn.0041b669
lea ecx, [ebp - 0x80]
call fcn.0041b1fb
lea ecx, [ebp - 0xb8]
call fcn.0041f341
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042b520
mov esp, ebp
pop ebp
ret