Function at 0x502010
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c84ce
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x67ff88]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x3c], esi
mov ebx, dword [ebp + 8]
xor edi, edi
mov ecx, ebx
mov dword [esp + 0x18], edi
call fcn.004fad50
cmp eax, 0x7f
jle 0x5020c6
cmp byte [ebp + 0x10], 0
je 0x5020ac
call fcn.004d8e80
cmp eax, edi
je 0x50209e
mov edx, dword [eax]
push edi
mov ecx, eax
mov eax, dword [edx + 8]
push str.ICO:_Image_too_tall_for_an_icon.
call eax
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, str.ICO:_Image_too_tall_for_an_icon.
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, ebx
call fcn.004fad30
cmp eax, 0xff
jle 0x50213d
cmp byte [ebp + 0x10], 0
je 0x5020ac
call fcn.004d8e80
cmp eax, edi
je 0x502115
mov edx, dword [eax]
push edi
mov ecx, eax
mov eax, dword [edx + 8]
push str.ICO:_Image_too_wide_for_an_icon.
call eax
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, str.ICO:_Image_too_wide_for_an_icon.
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x14]
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
cmp eax, 5
sete cl
xor edx, edx
mov word [esp + 0x4c], dx
mov edx, dword [ebx]
mov edx, dword [edx + 0x1c]
push 2
mov dword [esp + 0x20], 6
inc ecx
mov eax, ecx
mov dword [esp + 0x48], eax
mov word [esp + 0x52], ax
mov eax, 1
mov word [esp + 0x54], ax
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 2
lea ecx, [esp + 0x52]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 2
lea ecx, [esp + 0x54]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov ecx, ebx
call edx
test al, al
jne 0x502219
cmp byte [ebp + 0x10], al
je 0x5020ac
call fcn.004d8e80
cmp eax, edi
je 0x5021f1
mov edx, dword [eax]
push edi
mov ecx, eax
mov eax, dword [edx + 8]
push str.ICO:_Error_writing_the_image_file_
call eax
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, str.ICO:_Error_writing_the_image_file_
push eax
call fcn.004e6cb0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esp + 0x40], edi
lea ecx, [ecx]
xor edi, edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], vtable.wxImage.0
mov esi, dword [ebp + 8]
mov ecx, esi
mov dword [esp + 0x98], edi
call fcn.004fb170
mov ecx, esi
test al, al
je 0x502364
call fcn.004fb130
movzx ecx, al
push ecx
mov ecx, esi
call fcn.004fb110
movzx edx, al
push edx
mov ecx, esi
call fcn.004fb0f0
movzx eax, al
push eax
lea ecx, [esp + 0x68]
push ecx
mov ecx, esi
call fcn.004fc5e0
lea edx, [esp + 0x54]
mov byte [esp + 0x98], 1
cmp edx, eax
je 0x50228c
push eax
mov ecx, edx
call fcn.004d0f70
lea ecx, [esp + 0x5c]
mov byte [esp + 0x98], 0
mov dword [esp + 0x5c], vtable.wxObject.0
call fcn.004d0e90
mov ecx, esi
call fcn.004fb0f0
mov ecx, esi
mov byte [esp + 0x15], al
call fcn.004fb110
mov ecx, esi
mov byte [esp + 0x16], al
call fcn.004fb130
cmp byte [esp + 0x15], 0
mov byte [esp + 0x17], al
jne 0x5022dc
cmp byte [esp + 0x16], 0
jne 0x5022dc
test al, al
je 0x5023ed
lea ecx, [esp + 0x54]
xor edi, edi
call fcn.004fad30
test eax, eax
jle 0x5023ed
nop
lea ecx, [esp + 0x54]
xor esi, esi
call fcn.004fad50
test eax, eax
jle 0x502351
nop
push esi
push edi
lea ecx, [esp + 0x5c]
call fcn.004faf80
cmp byte [esp + 0x15], al
jne 0x502343
push esi
push edi
lea ecx, [esp + 0x5c]
call fcn.004fafb0
cmp byte [esp + 0x16], al
jne 0x502343
push esi
push edi
lea ecx, [esp + 0x5c]
call fcn.004fafe0
cmp byte [esp + 0x17], al
jne 0x502343
mov ecx, dword [ebp + 8]
push 0
push 0
push 0
push esi
push edi
call fcn.004fadb0
lea ecx, [esp + 0x54]
inc esi
call fcn.004fad50
cmp esi, eax
jl 0x502300
lea ecx, [esp + 0x54]
inc edi
call fcn.004fad30
cmp edi, eax
jl 0x5022f0
jmp 0x5023ed
lea eax, [esp + 0x64]
push eax
call fcn.004fbbf0
lea ecx, [esp + 0x54]
mov byte [esp + 0x98], 2
cmp ecx, eax
je 0x502384
push eax
call fcn.004d0f70
lea ecx, [esp + 0x64]
mov byte [esp + 0x98], 0
mov dword [esp + 0x64], vtable.wxObject.0
call fcn.004d0e90
lea ecx, [esp + 0x54]
call fcn.004fad30
test eax, eax
jle 0x5023ed
lea ebx, [ebx]
lea ecx, [esp + 0x54]
xor esi, esi
call fcn.004fad50
test eax, eax
jle 0x5023df
nop
push 0
push 0
push 0
push esi
push edi
lea ecx, [esp + 0x68]
call fcn.004fadb0
lea ecx, [esp + 0x54]
inc esi
call fcn.004fad50
cmp esi, eax
jl 0x5023c0
lea ecx, [esp + 0x54]
inc edi
call fcn.004fad30
cmp edi, eax
jl 0x5023b0
mov edx, dword [0x5f09fc]
push edx
push 0
push str.wxBMP_FORMAT
lea ecx, [esp + 0x2c]
call fcn.004cf3b0
mov esi, dword [ebp + 8]
push 8
lea eax, [esp + 0x24]
push eax
mov ecx, esi
mov byte [esp + 0xa0], 3
call fcn.004fb2c0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x98], 0
cmp eax, 0xffffffff
je 0x502440
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x502440
call fcn.004ce2e0
mov ecx, dword [0x5f09fc]
push ecx
push 0
push str.wxBMP_FORMAT
lea ecx, [esp + 0x30]
call fcn.004cf3b0
push 2
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0xa0], 4
call fcn.004fb2c0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x98], 0
cmp eax, 0xffffffff
je 0x502492
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x502492
call fcn.004ce2e0
lea ecx, [esp + 0x7c]
call fcn.004e8c30
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x3c]
push 0
push 0
push eax
lea ecx, [esp + 0x88]
push ecx
push esi
mov ecx, edi
mov byte [esp + 0xac], 5
call fcn.00501060
test al, al
je 0x502810
mov edx, dword [ebp + 0x10]
push 1
push 0
push edx
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, edi
call fcn.00501060
test al, al
je 0x502810
lea ecx, [esp + 0x7c]
call fcn.004e9510
add dword [esp + 0x1c], 0x10
mov edi, eax
mov ecx, esi
mov dword [esp + 0x48], edi
call fcn.004fad30
mov ecx, esi
mov byte [esp + 0x6c], al
call fcn.004fad50
add al, al
cmp dword [esp + 0x44], 2
mov byte [esp + 0x6d], al
mov edx, 1
mov eax, 8
mov byte [esp + 0x6e], 0
mov byte [esp + 0x6f], 0
mov word [esp + 0x70], dx
mov word [esp + 0x72], ax
jne 0x5026de
mov ecx, dword [0x5f09fc]
push ecx
push 0
push str.HotSpotX
lea ecx, [esp + 0x38]
call fcn.004cf3b0
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov byte [esp + 0x9c], 6
call fcn.004fb360
test al, al
je 0x5025a0
mov eax, dword [0x5f09fc]
push eax
push 0
push str.HotSpotX
lea ecx, [esp + 0x34]
call fcn.004cf3b0
or dword [esp + 0x18], 1
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
mov byte [esp + 0x9c], 7
call fcn.004fc8b0
jmp 0x5025ac
mov ecx, esi
call fcn.004fad30
cdq
sub eax, edx
sar eax, 1
test byte [esp + 0x18], 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x98], 6
je 0x5025e2
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx - 0xc]
and dword [esp + 0x18], 0xfffffffe
add ecx, 0xfffffff4
cmp eax, 0xffffffff
je 0x5025e2
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5025e2
call fcn.004ce2e0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x98], 5
cmp eax, 0xffffffff
je 0x502605
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x502605
call fcn.004ce2e0
mov edx, dword [0x5f09fc]
push edx
push 0
push str.HotSpotY
lea ecx, [esp + 0x40]
call fcn.004cf3b0
lea eax, [esp + 0x34]
push eax
mov ecx, esi
mov byte [esp + 0x9c], 8
call fcn.004fb360
test al, al
je 0x502668
mov ecx, dword [0x5f09fc]
push ecx
push 0
push str.HotSpotY
lea ecx, [esp + 0x3c]
call fcn.004cf3b0
or dword [esp + 0x18], 2
lea edx, [esp + 0x30]
push edx
mov ecx, esi
mov byte [esp + 0x9c], 9
call fcn.004fc8b0
mov edi, eax
jmp 0x502676
mov ecx, esi
call fcn.004fad50
cdq
sub eax, edx
mov edi, eax
sar edi, 1
test byte [esp + 0x18], 2
mov dword [esp + 0x98], 8
je 0x5026a8
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx - 0xc]
and dword [esp + 0x18], 0xfffffffd
add ecx, 0xfffffff4
cmp eax, 0xffffffff
je 0x5026a8
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5026a8
call fcn.004ce2e0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
add ecx, 0xfffffff4
mov byte [esp + 0x98], 5
cmp eax, 0xffffffff
je 0x5026cb
add eax, 0xffffffff
mov dword [ecx], eax
jne 0x5026cb
call fcn.004ce2e0
mov ax, word [esp + 0x38]
mov word [esp + 0x72], di
mov edi, dword [esp + 0x48]
mov word [esp + 0x70], ax
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x78], eax
add eax, edi
mov dword [esp + 0x1c], eax
push 1
lea eax, [esp + 0x70]
push eax
mov ecx, ebx
mov dword [esp + 0x7c], edi
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 1
lea ecx, [esp + 0x71]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 1
lea ecx, [esp + 0x72]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 1
lea ecx, [esp + 0x73]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 2
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 2
lea ecx, [esp + 0x76]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 4
lea ecx, [esp + 0x78]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push 4
lea ecx, [esp + 0x7c]
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov ecx, ebx
call edx
test al, al
je 0x502810
mov eax, dword [ebp + 0x10]
push 0
push 0
push eax
push ebx
push esi
mov esi, dword [esp + 0x50]
mov ecx, esi
call fcn.00501060
test al, al
je 0x502810
mov ecx, dword [ebp + 0x10]
push 1
push 0
push ecx
push ebx
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call fcn.00501060
test al, al
je 0x502886
lea ecx, [esp + 0x7c]
mov byte [esp + 0x98], 0
call fcn.004e8bd0
lea ecx, [esp + 0x54]
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x54], vtable.wxObject.0
call fcn.004d0e90
mov eax, dword [esp + 0x40]
inc eax
cmp eax, 1
mov dword [esp + 0x40], eax
jl 0x502220
mov al, 1
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [ebp + 0x10], 0
je 0x50283f
call fcn.004d8e80
test eax, eax
je 0x502831
mov edx, dword [eax]
push 0
mov ecx, eax
mov eax, dword [edx + 8]
push str.ICO:_Error_writing_the_image_file_
call eax
jmp 0x502836
mov eax, str.ICO:_Error_writing_the_image_file_
push eax
call fcn.004e6cb0
add esp, 4
lea ecx, [esp + 0x7c]
mov byte [esp + 0x98], 0
call fcn.004e8bd0
lea ecx, [esp + 0x54]
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x54], vtable.wxObject.0
call fcn.004d0e90
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [ebp + 0x10], 0
je 0x50283f
push 0
push str.ICO:_Error_writing_the_image_file_
call fcn.004d1250
push eax
call fcn.004e6cb0
add esp, 0xc
jmp 0x50283f