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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x502ae0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, dword [ebx]
push edi
mov edi, dword [ebp + 8]
call dword [eax + 0x190]
test al, al
jne 0x4288e3
mov eax, dword [edi + 4]
cmp eax, 9
jle 0x4288e3
cmp eax, 0x19
jge 0x4288e3
mov ecx, dword [ebx + 0x48]
push edi
test ecx, ecx
je 0x4288d7
mov eax, dword [ecx]
call dword [eax + 0x1dc]
jmp 0x429278
mov ecx, ebx
call fcn.00485ad9
jmp 0x429278
mov eax, dword [edi + 4]
cmp eax, 0x1b
jne 0x4288f7
mov byte [ebx + 0xba], 1
jmp 0x429278
cmp eax, 0x1a
jne 0x428908
mov byte [ebx + 0xba], 0
jmp 0x429278
mov ecx, dword [ebx + 0x238]
push esi
test ecx, ecx
je 0x428bb0
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x428bb0
mov ecx, dword [ebx + 0x238]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x428bb0
mov ecx, dword [edi + 4]
cmp ecx, 3
jne 0x4289b1
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x4289a4
dec eax
je 0x428997
dec eax
je 0x42898a
dec eax
je 0x42897d
dec eax
dec eax
je 0x428970
dec eax
dec eax
jne 0x428c85
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x54]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x64]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x5c]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x429277
lea esi, [ebx - 8]
mov eax, esi
neg eax
sbb eax, eax
and eax, ebx
cmp dword [edi + 8], eax
jne 0x428a6f
cmp ecx, 0x1e
jne 0x428a6f
cmp dword [edi + 0x1c], 0x18
jne 0x428a6f
mov ecx, dword [ebx + 0x24c]
test ecx, ecx
jle 0x428a56
mov eax, dword [ebx - 8]
dec ecx
mov dword [ebx + 0x24c], ecx
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebx - 8]
call dword [eax + 0x3c]
mov eax, dword [ebx - 8]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebx - 8]
call dword [eax + 0x40]
fild dword [ebx + 0x24c]
push 2
push ecx
fidiv dword [ebx + 0x248]
push ecx
fstp qword [esp]
call fcn.004286f1
fimul dword [ebx + 0x244]
add esp, 0xc
call fcn.0044f3a0
test eax, eax
jle 0x428a35
cmp dword [ebp - 8], 0
jne 0x428a3f
test eax, eax
jns 0x428a56
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
je 0x428a56
sub dword [ebp - 8], eax
push dword [ebp - 8]
mov eax, dword [ebx - 8]
push dword [ebp - 0xc]
lea ecx, [ebx - 8]
call dword [eax + 0x44]
jmp 0x429277
xor eax, eax
mov dword [ebx + 0x244], eax
mov dword [ebx + 0x248], eax
mov dword [ebx + 0x24c], eax
jmp 0x428b40
cmp ecx, 0x18
jne 0x428c85
lea ecx, [ebx - 8]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], ecx
call dword [eax + 0xcc]
test al, al
jne 0x428aaa
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x428aa2
dec eax
jne 0x428c85
mov ecx, dword [ebp - 0x3c]
jmp 0x428c6e
mov ecx, dword [ebp - 0x3c]
jmp 0x428c7b
mov ecx, dword [ebx + 0x238]
call fcn.00494d19
mov ecx, dword [ebx + 0x238]
mov dword [ebp - 8], eax
call fcn.00494d6f
mov ecx, dword [ebx + 0x238]
mov dword [ebp - 0x3c], eax
call fcn.00494ddc
mov ecx, dword [ebx + 0x248]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jle 0x428b0b
fild dword [ebx + 0x24c]
push 2
push ecx
push ecx
fidiv dword [ebp - 0x18]
fstp qword [esp]
call fcn.004286f1
fimul dword [ebx + 0x244]
add esp, 0xc
call fcn.0044f3a0
mov dword [ebx + 0x244], eax
movzx ecx, word [edi + 0x1c]
xor edx, edx
sub ecx, edx
je 0x428b3b
dec ecx
jne 0x428b69
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x3c], ecx
je 0x428b40
cmp eax, edx
jle 0x428b30
mov dword [ebx + 0x244], edx
mov eax, dword [ebp - 0x38]
sub dword [ebx + 0x244], eax
jmp 0x428b69
cmp dword [ebp - 0x3c], edx
jne 0x428b56
mov ecx, dword [ebx + 0x44]
neg esi
sbb esi, esi
and esi, ebx
push 0x18
push esi
call fcn.0047cc44
jmp 0x429277
cmp eax, edx
jge 0x428b60
mov dword [ebx + 0x244], edx
mov eax, dword [ebp - 0x38]
add dword [ebx + 0x244], eax
push dword [ebx + 0x244]
call fcn.004530a5
mov dword [ebp - 8], eax
fild dword [ebp - 8]
push ecx
fstp qword [esp]
call fcn.004530e4
pop ecx
fadd st(0), st(0)
pop ecx
call fcn.0044f3a0
mov ecx, dword [ebx + 0x44]
neg esi
push 0x1e
sbb esi, esi
and esi, ebx
push 0x18
push esi
mov dword [ebx + 0x248], eax
mov dword [ebx + 0x24c], eax
call fcn.0047cb5a
jmp 0x429277
mov ecx, dword [ebx + 0x23c]
test ecx, ecx
je 0x428c85
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x428c85
mov ecx, dword [ebx + 0x23c]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x428c85
mov eax, dword [edi + 4]
cmp eax, 3
jne 0x428c5a
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x428c4d
dec eax
je 0x428c40
dec eax
je 0x428c30
dec eax
je 0x428c20
dec eax
dec eax
je 0x428c13
dec eax
dec eax
jne 0x428c85
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x74]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x70]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x84]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x7c]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x78]
jmp 0x429277
cmp eax, 0x18
jne 0x428c85
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x428c78
dec eax
jne 0x428c85
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x6c]
jmp 0x429277
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x68]
jmp 0x429277
cmp dword [ebx + 0x254], 0
jne 0x428c9b
cmp dword [ebx + 0x258], 0
je 0x42926f
cmp dword [edi + 4], 0xe
mov esi, dword [sym.imp.USER32.dll_PtInRect]
jne 0x428d5d
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x428d5d
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.004284c3
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x428ce4
mov byte [ebx + 0x251], 1
jmp 0x428d09
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.004285a4
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x428d5d
mov byte [ebx + 0x251], 0
or dword [ebx + 0x25c], 0x40
cmp byte [ebx + 0x250], 0
mov eax, edi
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x260], ecx
mov eax, dword [eax + 0x14]
lea esi, [ebx + 0x58]
lea edi, [ebx + 0x268]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x264], eax
movsd dword es:[edi], dword [esi]
jne 0x429277
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x429277
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0047ce83
jmp 0x429277
mov edx, dword [edi + 4]
cmp edx, 0xf
jne 0x428db1
mov eax, dword [ebx + 0x25c]
test al, 0x40
je 0x428db1
lea esi, [ebx + 0x268]
lea edi, [ebx + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and eax, 0xffffffbf
cmp byte [ebx + 0x250], 0
mov dword [ebx + 0x25c], eax
movsd dword es:[edi], dword [esi]
jne 0x4291b1
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x4291b1
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0047ceae
jmp 0x4291b1
cmp edx, 0xa
jne 0x429203
test byte [ebx + 0x25c], 0x40
je 0x429203
mov eax, edi
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
sub ecx, dword [ebx + 0x260]
sub edx, dword [ebx + 0x264]
cmp byte [ebx + 0x251], 0
mov dword [ebx + 0x260], esi
mov esi, dword [eax + 0x14]
mov dword [ebx + 0x264], esi
lea esi, [ebx + 0x268]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x428fee
mov edx, dword [ebx + 0x254]
test edx, edx
jle 0x428ece
test ecx, ecx
jle 0x428e2c
mov esi, dword [ebx + 0x270]
sub esi, edx
cmp dword [eax + 0x10], esi
jl 0x429277
test ecx, ecx
jns 0x428e3d
mov eax, dword [eax + 0x10]
cmp eax, dword [ebx + 0x270]
jg 0x429277
mov esi, dword [ebp - 0xc]
mov eax, dword [ebx]
add esi, ecx
mov ecx, ebx
mov dword [ebp - 0xc], esi
call dword [eax + 0x104]
mov edi, dword [ebp - 0x14]
mov ecx, esi
sub ecx, edi
cmp ecx, eax
jg 0x428e88
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov ecx, dword [ebx + 0x270]
sub ecx, dword [ebx + 0x268]
cmp ecx, eax
jle 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
lea esi, [edi + eax]
mov dword [ebp - 0xc], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
sub esi, edi
cmp esi, eax
jl 0x428f81
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x270]
sub ecx, dword [ebx + 0x268]
cmp ecx, eax
jge 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
add eax, edi
mov dword [ebp - 0xc], eax
jmp 0x428f81
test ecx, ecx
jle 0x428ee3
mov esi, dword [eax + 0x10]
cmp esi, dword [ebx + 0x268]
jl 0x429277
test ecx, ecx
jns 0x428ef6
mov esi, dword [ebx + 0x268]
sub esi, edx
cmp dword [eax + 0x10], esi
jg 0x429277
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx]
add esi, ecx
mov ecx, ebx
mov dword [ebp - 0x14], esi
call dword [eax + 0x104]
mov edi, dword [ebp - 0xc]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jg 0x428f42
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov ecx, dword [ebx + 0x270]
sub ecx, dword [ebx + 0x268]
cmp ecx, eax
jle 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov esi, edi
sub esi, eax
mov dword [ebp - 0x14], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jl 0x428f81
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x270]
sub ecx, dword [ebx + 0x268]
cmp ecx, eax
jge 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
sub edi, eax
mov dword [ebp - 0x14], edi
push 1
lea eax, [ebp - 0x34]
lea ecx, [ebx - 8]
push eax
call fcn.004284c3
push eax
lea ecx, [ebp - 0x24]
call fcn.0047ad50
lea esi, [ebp - 0x14]
lea edi, [ebx + 0x268]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x270]
sub eax, dword [ebx + 0x268]
cmp byte [ebx + 0x250], 0
mov dword [ebx + 0x80], eax
jne 0x4291a7
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004284c3
push eax
lea ecx, [ebp - 0x24]
call fcn.0047adc4
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004284c3
jmp 0x4291e2
mov ecx, dword [ebx + 0x258]
test ecx, ecx
jle 0x4290b5
test edx, edx
jle 0x429013
mov esi, dword [ebx + 0x274]
add esi, ecx
cmp dword [eax + 0x14], esi
jl 0x429277
test edx, edx
jns 0x429024
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 0x274]
jg 0x429277
mov esi, dword [ebp - 8]
mov eax, dword [ebx]
add esi, edx
mov ecx, ebx
mov dword [ebp - 8], esi
call dword [eax + 0x114]
mov edi, dword [ebp - 0x10]
mov ecx, esi
sub ecx, edi
cmp ecx, eax
jg 0x42906f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov ecx, dword [ebx + 0x274]
sub ecx, dword [ebx + 0x26c]
cmp ecx, eax
jle 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
lea esi, [edi + eax]
mov dword [ebp - 8], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
sub esi, edi
cmp esi, eax
jl 0x429168
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, dword [ebx + 0x274]
sub ecx, dword [ebx + 0x26c]
cmp ecx, eax
jge 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
add eax, edi
mov dword [ebp - 8], eax
jmp 0x429168
test edx, edx
jle 0x4290ca
mov esi, dword [eax + 0x14]
cmp esi, dword [ebx + 0x26c]
jl 0x429277
test edx, edx
jns 0x4290dd
mov esi, dword [ebx + 0x26c]
add esi, ecx
cmp dword [eax + 0x14], esi
jg 0x429277
mov esi, dword [ebp - 0x10]
mov eax, dword [ebx]
add esi, edx
mov ecx, ebx
mov dword [ebp - 0x10], esi
call dword [eax + 0x114]
mov edi, dword [ebp - 8]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jg 0x429129
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov ecx, dword [ebx + 0x274]
sub ecx, dword [ebx + 0x26c]
cmp ecx, eax
jle 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov esi, edi
sub esi, eax
mov dword [ebp - 0x10], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jl 0x429168
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, dword [ebx + 0x274]
sub ecx, dword [ebx + 0x26c]
cmp ecx, eax
jge 0x429277
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
sub edi, eax
mov dword [ebp - 0x10], edi
push 1
lea eax, [ebp - 0x34]
lea ecx, [ebx - 8]
push eax
call fcn.004285a4
push eax
lea ecx, [ebp - 0x24]
call fcn.0047ad50
lea esi, [ebp - 0x14]
lea edi, [ebx + 0x268]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x274]
sub eax, dword [ebx + 0x26c]
cmp byte [ebx + 0x250], 0
mov dword [ebx + 0x84], eax
je 0x4291bd
lea edi, [ebx + 0x58]
lea esi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00485a05
jmp 0x429277
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004285a4
push eax
lea ecx, [ebp - 0x24]
call fcn.0047adc4
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004285a4
push eax
lea ecx, [ebp - 0x24]
call fcn.0047adc4
mov ebx, dword [ebx + 0x44]
test ebx, ebx
je 0x429277
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.0047cacf
jmp 0x429277
cmp edx, 0x1d
jne 0x42926f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x42926f
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.004284c3
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x42923b
push 0x7f84
jmp 0x42925e
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.004285a4
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x42926f
push 0x7f85
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x429277
push edi
mov ecx, ebx
call fcn.00485ad9
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0044d74d
leave
ret 4