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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x602c60]
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 0x4ad5cf
mov eax, dword [edi + 4]
cmp eax, 9
jle 0x4ad5cf
cmp eax, 0x19
jge 0x4ad5cf
mov ecx, dword [ebx + 0x48]
push edi
test ecx, ecx
je 0x4ad5c3
mov eax, dword [ecx]
call dword [eax + 0x1dc]
jmp 0x4adf64
mov ecx, ebx
call fcn.00535767
jmp 0x4adf64
mov eax, dword [edi + 4]
cmp eax, 0x1b
jne 0x4ad5e3
mov byte [ebx + 0xba], 1
jmp 0x4adf64
cmp eax, 0x1a
jne 0x4ad5f4
mov byte [ebx + 0xba], 0
jmp 0x4adf64
mov ecx, dword [ebx + 0x238]
push esi
test ecx, ecx
je 0x4ad89c
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x4ad89c
mov ecx, dword [ebx + 0x238]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x4ad89c
mov ecx, dword [edi + 4]
cmp ecx, 3
jne 0x4ad69d
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x4ad690
dec eax
je 0x4ad683
dec eax
je 0x4ad676
dec eax
je 0x4ad669
dec eax
dec eax
je 0x4ad65c
dec eax
dec eax
jne 0x4ad971
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x54]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x64]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x5c]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x4adf63
lea esi, [ebx - 8]
mov eax, esi
neg eax
sbb eax, eax
and eax, ebx
cmp dword [edi + 8], eax
jne 0x4ad75b
cmp ecx, 0x1e
jne 0x4ad75b
cmp dword [edi + 0x1c], 0x18
jne 0x4ad75b
mov ecx, dword [ebx + 0x24c]
test ecx, ecx
jle 0x4ad742
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.004ad3b3
fimul dword [ebx + 0x244]
add esp, 0xc
call fcn.004fdee0
test eax, eax
jle 0x4ad721
cmp dword [ebp - 8], 0
jne 0x4ad72b
test eax, eax
jns 0x4ad742
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
je 0x4ad742
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 0x4adf63
xor eax, eax
mov dword [ebx + 0x244], eax
mov dword [ebx + 0x248], eax
mov dword [ebx + 0x24c], eax
jmp 0x4ad82c
cmp ecx, 0x18
jne 0x4ad971
lea ecx, [ebx - 8]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], ecx
call dword [eax + 0xcc]
test al, al
jne 0x4ad796
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x4ad78e
dec eax
jne 0x4ad971
mov ecx, dword [ebp - 0x3c]
jmp 0x4ad95a
mov ecx, dword [ebp - 0x3c]
jmp 0x4ad967
mov ecx, dword [ebx + 0x238]
call fcn.00540c40
mov ecx, dword [ebx + 0x238]
mov dword [ebp - 8], eax
call fcn.00540c96
mov ecx, dword [ebx + 0x238]
mov dword [ebp - 0x3c], eax
call fcn.00540d03
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 0x4ad7f7
fild dword [ebx + 0x24c]
push 2
push ecx
push ecx
fidiv dword [ebp - 0x18]
fstp qword [esp]
call fcn.004ad3b3
fimul dword [ebx + 0x244]
add esp, 0xc
call fcn.004fdee0
mov dword [ebx + 0x244], eax
movzx ecx, word [edi + 0x1c]
xor edx, edx
sub ecx, edx
je 0x4ad827
dec ecx
jne 0x4ad855
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x3c], ecx
je 0x4ad82c
cmp eax, edx
jle 0x4ad81c
mov dword [ebx + 0x244], edx
mov eax, dword [ebp - 0x38]
sub dword [ebx + 0x244], eax
jmp 0x4ad855
cmp dword [ebp - 0x3c], edx
jne 0x4ad842
mov ecx, dword [ebx + 0x44]
neg esi
sbb esi, esi
and esi, ebx
push 0x18
push esi
call fcn.0052c8d4
jmp 0x4adf63
cmp eax, edx
jge 0x4ad84c
mov dword [ebx + 0x244], edx
mov eax, dword [ebp - 0x38]
add dword [ebx + 0x244], eax
push dword [ebx + 0x244]
call fcn.00504a62
mov dword [ebp - 8], eax
fild dword [ebp - 8]
push ecx
fstp qword [esp]
call fcn.00504aa4
pop ecx
fadd st(0), st(0)
pop ecx
call fcn.004fdee0
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.0052c7ea
jmp 0x4adf63
mov ecx, dword [ebx + 0x23c]
test ecx, ecx
je 0x4ad971
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x4ad971
mov ecx, dword [ebx + 0x23c]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x4ad971
mov eax, dword [edi + 4]
cmp eax, 3
jne 0x4ad946
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x4ad939
dec eax
je 0x4ad92c
dec eax
je 0x4ad91c
dec eax
je 0x4ad90c
dec eax
dec eax
je 0x4ad8ff
dec eax
dec eax
jne 0x4ad971
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x74]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x70]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x84]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x7c]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x78]
jmp 0x4adf63
cmp eax, 0x18
jne 0x4ad971
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x4ad964
dec eax
jne 0x4ad971
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x6c]
jmp 0x4adf63
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x68]
jmp 0x4adf63
cmp dword [ebx + 0x254], 0
jne 0x4ad987
cmp dword [ebx + 0x258], 0
je 0x4adf5b
cmp dword [edi + 4], 0xe
mov esi, dword [sym.imp.USER32.dll_PtInRect]
jne 0x4ada49
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x4ada49
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.004ad185
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x4ad9d0
mov byte [ebx + 0x251], 1
jmp 0x4ad9f5
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.004ad266
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x4ada49
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 0x4adf63
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x4adf63
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0052cb13
jmp 0x4adf63
mov edx, dword [edi + 4]
cmp edx, 0xf
jne 0x4ada9d
mov eax, dword [ebx + 0x25c]
test al, 0x40
je 0x4ada9d
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 0x4ade9d
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x4ade9d
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0052cb3e
jmp 0x4ade9d
cmp edx, 0xa
jne 0x4adeef
test byte [ebx + 0x25c], 0x40
je 0x4adeef
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 0x4adcda
mov edx, dword [ebx + 0x254]
test edx, edx
jle 0x4adbba
test ecx, ecx
jle 0x4adb18
mov esi, dword [ebx + 0x270]
sub esi, edx
cmp dword [eax + 0x10], esi
jl 0x4adf63
test ecx, ecx
jns 0x4adb29
mov eax, dword [eax + 0x10]
cmp eax, dword [ebx + 0x270]
jg 0x4adf63
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 0x4adb74
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 0x4adf63
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 0x4adc6d
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 0x4adf63
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
add eax, edi
mov dword [ebp - 0xc], eax
jmp 0x4adc6d
test ecx, ecx
jle 0x4adbcf
mov esi, dword [eax + 0x10]
cmp esi, dword [ebx + 0x268]
jl 0x4adf63
test ecx, ecx
jns 0x4adbe2
mov esi, dword [ebx + 0x268]
sub esi, edx
cmp dword [eax + 0x10], esi
jg 0x4adf63
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 0x4adc2e
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 0x4adf63
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 0x4adc6d
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 0x4adf63
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.004ad185
push eax
lea ecx, [ebp - 0x24]
call fcn.0052a9e0
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 0x4ade93
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004ad185
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004ad185
jmp 0x4adece
mov ecx, dword [ebx + 0x258]
test ecx, ecx
jle 0x4adda1
test edx, edx
jle 0x4adcff
mov esi, dword [ebx + 0x274]
add esi, ecx
cmp dword [eax + 0x14], esi
jl 0x4adf63
test edx, edx
jns 0x4add10
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 0x274]
jg 0x4adf63
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 0x4add5b
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 0x4adf63
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 0x4ade54
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 0x4adf63
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
add eax, edi
mov dword [ebp - 8], eax
jmp 0x4ade54
test edx, edx
jle 0x4addb6
mov esi, dword [eax + 0x14]
cmp esi, dword [ebx + 0x26c]
jl 0x4adf63
test edx, edx
jns 0x4addc9
mov esi, dword [ebx + 0x26c]
add esi, ecx
cmp dword [eax + 0x14], esi
jg 0x4adf63
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 0x4ade15
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 0x4adf63
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 0x4ade54
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 0x4adf63
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.004ad266
push eax
lea ecx, [ebp - 0x24]
call fcn.0052a9e0
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 0x4adea9
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.00535693
jmp 0x4adf63
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004ad266
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.004ad266
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
mov ebx, dword [ebx + 0x44]
test ebx, ebx
je 0x4adf63
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.0052c75f
jmp 0x4adf63
cmp edx, 0x1d
jne 0x4adf5b
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x4adf5b
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.004ad185
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x4adf27
push 0x7f84
jmp 0x4adf4a
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.004ad266
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x4adf5b
push 0x7f85
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4adf63
push edi
mov ecx, ebx
call fcn.00535767
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004fb958
leave
ret 4