Function at 0x402800
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov eax, dword [0x418008]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x428], 0
call fcn.004039e0
add esp, 4
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x402852
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00405c9f
mov esp, ebp
pop ebp
ret
test dword [eax + 8], 0x1ff
je 0x402865
mov esi, 0x22
jmp 0x402a5c
mov eax, dword [0x44c9c0]
push 0x4156ec
push 0x8b
push eax
call dword [sym.imp.kernel32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x402a57
mov ecx, dword [0x44c9c0]
mov ebx, dword [sym.imp.kernel32.dll_SizeofResource]
push esi
push ecx
call ebx
mov edx, dword [0x44c9c0]
push esi
push edx
mov dword [ebp - 0x410], eax
call dword [sym.imp.kernel32.dll_LoadResource]
push eax
call dword [sym.imp.kernel32.dll_LockResource]
test eax, eax
je 0x402a57
mov esi, eax
mov eax, dword [0x44c9c0]
mov ecx, 0x80
lea edi, [ebp - 0x40c]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
push 0x4156ec
cmp dword [ebp + 0x10], edi
je 0x402915
push 0x8d
push eax
call dword [sym.imp.kernel32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40294e
mov ecx, dword [0x44c9c0]
push esi
push ecx
call ebx
mov edx, dword [0x44c9c0]
push esi
mov ebx, eax
push edx
mov dword [ebp - 0x410], ebx
call dword [sym.imp.kernel32.dll_LoadResource]
push eax
call dword [sym.imp.kernel32.dll_LockResource]
mov edi, eax
jmp 0x402954
push 0x8c
push eax
call dword [sym.imp.kernel32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40294e
mov ecx, dword [0x44c9c0]
push esi
push ecx
call ebx
mov edx, dword [0x44c9c0]
push esi
push edx
mov dword [ebp - 0x410], eax
call dword [sym.imp.kernel32.dll_LoadResource]
push eax
call dword [sym.imp.kernel32.dll_LockResource]
mov edi, eax
mov ebx, dword [ebp - 0x410]
mov esi, edi
test esi, esi
je 0x402a57
lea eax, [ebx + 0x1ff]
and eax, 0xfffffe00
push eax
mov dword [ebp - 0x418], eax
call fcn.00405e86
mov edi, eax
add esp, 4
mov dword [ebp - 0x428], edi
test edi, edi
jne 0x40298c
lea esi, [eax + 9]
jmp 0x402a5c
mov eax, dword [ebp - 0x418]
push eax
push 0
push edi
call fcn.0040b800
add esp, 0xc
push ebx
push esi
push edi
call fcn.0040cb70
add esp, 0xc
xor edx, edx
test ebx, ebx
jle 0x402a2a
nop
mov eax, 0xa
mov ecx, 0x415778
lea esi, [edx + edi]
lea ecx, [ecx]
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4029f8
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4029c0
test eax, eax
je 0x402a03
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4029f8
cmp eax, 1
jbe 0x402a03
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4029f8
cmp eax, 2
jbe 0x402a03
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
je 0x402a03
inc edx
cmp edx, dword [ebp - 0x410]
jl 0x4029b0
jmp 0x402a2a
mov eax, 0x41a5b0
lea esi, [eax + 1]
jmp 0x402a10
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402a10
sub eax, esi
push eax
add edx, edi
push 0x41a5b0
push edx
call fcn.0040cb70
add esp, 0xc
mov ecx, dword [ebp - 0x418]
mov eax, edi
cmp ecx, 0x35a
jbe 0x402a57
mov edx, 0x7269da46
nop
cmp dword [eax], 0x1434a669
jne 0x402a4d
cmp dword [eax + 4], edx
je 0x402a9a
dec ecx
inc eax
cmp ecx, 0x35a
ja 0x402a40
mov esi, 1
mov edi, dword [ebp - 0x414]
mov edx, dword [edi]
push edx
call dword [sym.imp.kernel32.dll_CloseHandle]
push edi
call fcn.00405e4c
mov eax, dword [ebp - 0x428]
add esp, 4
test eax, eax
je 0x402a87
push eax
call fcn.00405e4c
add esp, 4
mov ecx, dword [ebp - 8]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00405c9f
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x410], eax
test eax, eax
je 0x402a57
mov edx, dword [ebp - 0x420]
push 1
push edx
call fcn.00402650
add esp, 8
mov dword [ebp - 0x434], eax
or eax, edx
mov dword [ebp - 0x430], edx
jne 0x402aca
lea esi, [eax + 0xf]
jmp 0x402a5c
mov ecx, dword [ebp - 0x414]
push 0
push 0
push 0x200
lea eax, [ebp - 0x20c]
push eax
push ecx
call fcn.00403af0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x402a5c
mov edx, 0xaa55
cmp word [ebp - 0xe], dx
jne 0x402d72
lea edi, [ebp - 0x20c]
call fcn.004038e0
test eax, eax
jne 0x402d72
mov eax, dword [ebp - 0x20a]
cmp eax, 0x10eb9090
je 0x402d68
cmp eax, 0x20b60251
je 0x402d68
mov edi, dword [ebp - 0x42]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x424], 0x40
test edi, edi
je 0x402b5e
xor eax, eax
mov esi, dword [ebp - 0x46]
ja 0x402b5a
jb 0x402b54
cmp esi, 0x40
ja 0x402b5a
mov dword [ebp - 0x424], esi
add esi, edi
xor ecx, ecx
mov ebx, dword [ebp - 0x32]
test ebx, ebx
je 0x402b93
mov eax, dword [ebp - 0x36]
xor edi, edi
cmp edx, edi
jb 0x402b80
ja 0x402b78
cmp dword [ebp - 0x424], eax
jb 0x402b80
mov dword [ebp - 0x424], eax
mov edx, edi
lea edi, [eax + ebx]
xor eax, eax
cmp ecx, eax
ja 0x402b93
jb 0x402b8f
cmp esi, edi
ja 0x402b93
mov esi, edi
mov ecx, eax
mov ebx, dword [ebp - 0x22]
test ebx, ebx
je 0x402bc8
mov eax, dword [ebp - 0x26]
xor edi, edi
cmp edx, edi
jb 0x402bb5
ja 0x402bad
cmp dword [ebp - 0x424], eax
jb 0x402bb5
mov dword [ebp - 0x424], eax
mov edx, edi
lea edi, [eax + ebx]
xor eax, eax
cmp ecx, eax
ja 0x402bc8
jb 0x402bc4
cmp esi, edi
ja 0x402bc8
mov esi, edi
mov ecx, eax
mov ebx, dword [ebp - 0x12]
test ebx, ebx
je 0x402bfd
mov eax, dword [ebp - 0x16]
xor edi, edi
cmp edx, edi
jb 0x402bea
ja 0x402be2
cmp dword [ebp - 0x424], eax
jb 0x402bea
mov dword [ebp - 0x424], eax
mov edx, edi
lea edi, [eax + ebx]
xor eax, eax
cmp ecx, eax
ja 0x402bfd
jb 0x402bf9
cmp esi, edi
ja 0x402bfd
mov esi, edi
mov ecx, eax
cmp dword [ebp + 0xc], 0
je 0x402d13
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 8]
push edx
mov edx, dword [ebp - 0x424]
push edx
push 0
push ecx
call fcn.0040d0e0
mov esi, eax
mov eax, dword [ebp - 0x418]
add eax, 0x200
mov ecx, edx
cdq
cmp ecx, edx
ja 0x402c44
jb 0x402c3a
cmp esi, eax
jae 0x402c44
mov esi, 0x14
jmp 0x402a5c
mov dword [ebp - 0x434], 0x200
xor ebx, ebx
cmp dword [ebp + 0x10], 0
je 0x402c61
mov eax, dword [ebp - 0x410]
or word [eax + 0x13], 0x20
mov edi, dword [ebp - 0x410]
mov eax, dword [ebp - 0x434]
add edi, 0x116
mov ecx, 0x80
lea esi, [ebp - 0x20c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x13
lea esi, [ebp - 0x5c]
lea edi, [ebp - 0x25c]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
shrd eax, ecx, 9
movsw word es:[edi], word [esi]
mov dword [ebp - 0x3fe], eax
mov eax, dword [ebp - 0x418]
cdq
and edx, 0x1ff
add eax, edx
mov edx, dword [ebp - 0x434]
sar eax, 9
push ebx
push edx
mov edx, dword [ebp - 0x414]
shr ecx, 9
mov word [ebp - 0x404], ax
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x3fa], ecx
mov ecx, dword [ebp - 0x428]
push eax
push ecx
push edx
call fcn.00403be0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x402a5c
mov ecx, dword [ebp - 0x414]
push eax
push eax
push 0x200
lea eax, [ebp - 0x40c]
push eax
push ecx
call fcn.00403be0
add esp, 0x14
mov esi, eax
jmp 0x402a5c
mov eax, dword [ebp - 0x418]
mov edi, dword [ebp - 0x434]
mov ebx, dword [ebp - 0x430]
cdq
push ecx
sub edi, eax
mov eax, dword [ebp - 0x414]
sbb ebx, edx
mov edx, dword [eax + 8]
push esi
push 0
add edi, 0xfffff000
push edx
adc ebx, 0xffffffff
mov dword [ebp - 0x434], edi
call fcn.0040d0e0
cmp edx, ebx
jb 0x402c50
ja 0x402d5e
cmp eax, edi
jbe 0x402c50
mov esi, 0x14
jmp 0x402a5c
mov esi, 0x13
jmp 0x402a5c
mov esi, 0x12
jmp 0x402a5c