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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xa4]
cmp eax, dword [ecx + 8]
jbe 0x4ace62
sub esp, 0x124
mov eax, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 4], eax
call fcn.004ace70
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test al, al
jne 0x4ac2a2
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov byte [esp + 0x15c], 0
add esp, 0x124
ret
mov dword [esp + 0x60], ebp
mov dword [esp + 0x118], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004ad0c0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test al, al
je 0x4ac246
neg ecx
test edx, edx
jne 0x4ac339
mov eax, dword [esp + 0x118]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x134]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x154], 0xffffffff
mov dword [esp + 0x158], 0x7fffffff
mov byte [esp + 0x15c], 1
add esp, 0x124
ret
cmp byte [ebx], 0x2c
je 0x4ac2d8
mov dword [esp + 0x58], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.004ace70
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test al, al
je 0x4acdc0
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x11c], ebx
test ecx, ecx
jne 0x4ace1c
mov esi, dword [esp + 0x58]
mov edi, ebx
lea ebx, [esi + 0xe10]
test al, al
je 0x4acdc0
test ecx, ecx
jne 0x4acdb7
mov eax, 0xf
lea ecx, [0x5ee686]
test eax, eax
jbe 0x4ace58
mov dword [esp + 0xd4], ebx
movzx edx, byte [ecx]
cmp dl, 0x2c
je 0x4ac3c5
cmp dl, 0x3b
jne 0x4acd5b
mov dword [esp + 0x128], ecx
lea edi, [esp + 0xd8]
mov edx, eax
xor eax, eax
call fcn.0045e1fb
lea edi, [esp + 0xec]
call fcn.0045e1fb
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ebx, dword [esp + 0x128]
add ecx, ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004ad310
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0x100]
lea esi, [esp + 8]
call fcn.0045e6de
lea edi, [esp + 0xd8]
lea esi, [esp + 0x100]
call fcn.0045e6de
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x4ac44b
test edx, edx
jne 0x4ac4a7
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov byte [esp + 0x15c], 0
add esp, 0x124
ret
cmp byte [ebx], 0x2c
jne 0x4ac44b
lea eax, [edx - 1]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004ad310
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xd0], ecx
lea edi, [esp + 0x100]
lea esi, [esp + 8]
call fcn.0045e6de
lea edi, [esp + 0xec]
lea esi, [esp + 0x100]
call fcn.0045e6de
test al, al
je 0x4ac509
mov eax, dword [esp + 0xd0]
test eax, eax
jle 0x4ac565
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov byte [esp + 0x15c], 0
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
add eax, 0x1ad9c900
mov edx, dword [esp + 0x13c]
adc edx, 0x7ffffffe
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], 0
call fcn.004aa740
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x13c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x138]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.004557f0
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xcc], ecx
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x34]
mov ebp, ebx
add ebx, 0xd116ebf
mov esi, ebx
shr ebx, 1
mov eax, 0xa3d70a3e
mul ebx
shr edx, 7
mov dword [esp + 0xc8], edx
add edx, 0
mov dword [esp + 0xc4], edx
mov ebx, ebp
sar ebp, 0x1f
mov dword [esp + 0xc0], ebp
add ebx, 0xd116ebf
adc ebp, 0x44
mov dword [esp + 0xbc], ebp
shr ebp, 1
mov eax, 0xa3d70a3e
mul ebp
shr edx, 7
mov dword [esp + 0xb8], edx
imul eax, edx, 0x190
mov ebp, dword [esp + 0xbc]
sub ebp, eax
mov eax, 0xa3d70a
mul ebp
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xc4]
add eax, ecx
mov edi, dword [esp + 0xc8]
imul ebx, edi, 0x190
sub esi, ebx
lea ebx, [ebp + ebp*2]
shl ebx, 5
add ebx, esi
shr ebx, 1
mov ebp, eax
mov eax, 0xa3d70a3e
mov esi, edx
mul ebx
shr edx, 7
mov dword [esp + 0xc8], edx
add edx, ebp
mov dword [esp + 0x50], edx
mov eax, 0x190
mul edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0xac], edx
add edx, 0xd116ebf
mov dword [esp + 0x3c], edx
mov eax, 0x23ab1
mov ebx, dword [esp + 0x50]
mul ebx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x3c]
shr ebx, 1
mov eax, 0xa3d70a3e
mul ebx
shr edx, 5
mov dword [esp + 0xa4], edx
add edx, 0
mov dword [esp + 0xa0], edx
add edi, 0
mov ebx, dword [esp + 0xb8]
adc ebx, 0
mov edi, dword [esp + 0xb4]
add edi, ecx
adc esi, ebx
mov ecx, dword [esp + 0xc8]
add ecx, ebp
adc esi, 0
mov dword [esp + 0xbc], esi
imul ecx, esi, 0x190
mov ebx, dword [esp + 0xc4]
add ecx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0xb0]
sub ebx, ebp
mov ebx, dword [esp + 0xc0]
sbb ebx, ecx
mov dword [esp + 0xc0], ebx
mov ecx, dword [esp + 0xac]
mov ebp, ecx
add ecx, 0xd116ebf
adc ebx, 0x44
mov dword [esp + 0x9c], ebx
shr ebx, 1
mov eax, 0xa3d70a3e
mul ebx
shr edx, 5
mov dword [esp + 0xc8], edx
imul eax, edx, 0x64
mov ebx, dword [esp + 0x9c]
sub ebx, eax
mov eax, 0x28f5c28
mul ebx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xb8], eax
mov esi, dword [esp + 0xa0]
add eax, esi
mov edi, dword [esp + 0xa4]
imul ecx, edi, 0x64
mov edx, dword [esp + 0x3c]
sub edx, ecx
lea ecx, [ebx + ebx*2]
shl ecx, 5
add ecx, edx
shr ecx, 1
mov edx, eax
mov eax, 0xa3d70a3e
mov ebx, edx
mul ecx
shr edx, 5
mov eax, edx
add edx, ebx
mov dword [esp + 0x50], edx
mov ecx, eax
mov eax, 0x64
mul edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], eax
sub ebp, eax
mov dword [esp + 0xa4], ebp
add ebp, 0xd116ebf
mov dword [esp + 0x3c], ebp
mov eax, 0x8eac
mov ebp, dword [esp + 0x50]
mul ebp
mov dword [esp + 0xa0], edx
mov dword [esp + 0x98], eax
mov ebp, dword [esp + 0x6c]
add ebp, eax
mov dword [esp + 0x94], ebp
add edi, 0
mov edi, dword [esp + 0xc8]
adc edi, 0
mov eax, dword [esp + 0xb8]
add eax, esi
mov eax, dword [esp + 0xc4]
adc eax, edi
add ecx, ebx
adc eax, 0
mov dword [esp + 0x9c], eax
imul ecx, eax, 0x64
mov ebx, dword [esp + 0xb4]
add ecx, ebx
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
sub ebx, esi
mov ebx, dword [esp + 0xc0]
sbb ebx, ecx
mov dword [esp + 0xc0], ebx
mov ecx, dword [esp + 0xa4]
mov esi, ecx
add ecx, 0xd116ebf
adc ebx, 0x44
mov dword [esp + 0x90], ebx
mov edi, dword [esp + 0x3c]
shr edi, 2
shl ebx, 0x1e
or ebx, edi
mov dword [esp + 0xc8], ebx
mov edi, ebx
shl ebx, 2
mov dword [esp + 0xc4], ebx
sub esi, ebx
mov dword [esp + 0xb8], esi
add esi, 0xd116ebf
mov eax, 0x5b5
mul edi
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], eax
add eax, ebp
mov dword [esp + 0xac], eax
mov eax, 0x16d
mul esi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov esi, dword [esp + 0xac]
add eax, esi
mov dword [esp + 0x68], eax
mov eax, 0x15180
mov esi, dword [esp + 0x68]
mul esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], eax
add eax, 0xe5263700
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
nop
mov esi, dword [esp + 0x34]
mov dword [esp], esi
lea edi, [esp + 4]
lea esi, [esp + 0xd8]
call fcn.0045e6de
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
call fcn.004ad820
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0xec]
call fcn.0045e6de
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x18], ecx
call fcn.004ad820
mov eax, dword [esp + 0xd0]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0xcc]
add edx, ecx
mov ecx, dword [esp + 0x7c]
adc ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0xbc]
imul eax, eax, 0x23ab1
mov edx, dword [esp + 0xa8]
add eax, edx
mov edx, dword [esp + 0x9c]
imul edx, edx, 0x8eac
mov ebx, dword [esp + 0xa0]
add edx, ebx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x98]
add ebx, ebp
adc eax, edx
mov edx, dword [esp + 0x90]
shr edx, 2
mov ebx, edx
shl edx, 2
mov ebp, dword [esp + 0xc8]
shr ebp, 0x1e
or ebp, edx
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0xc4]
sub edx, esi
mov edx, dword [esp + 0xc0]
sbb edx, ebp
mov ebp, dword [esp + 0xb8]
add ebp, 0xd116ebf
adc edx, 0x44
imul ebx, ebx, 0x5b5
mov ebp, dword [esp + 0xb4]
add ebx, ebp
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0x94]
add ebp, esi
adc ebx, eax
imul eax, edx, 0x16d
mov edx, dword [esp + 0x8c]
add eax, edx
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0xac]
add edx, ebp
adc eax, ebx
imul eax, eax, 0x15180
mov edx, dword [esp + 0x84]
add eax, edx
mov dword [esp + 0xcc], eax
mov edx, dword [esp + 0x70]
add edx, 0xe5263700
adc eax, 0x80000001
mov dword [esp + 0x74], eax
mov ebp, dword [esp + 0x78]
mov esi, ebp
sar ebp, 0x1f
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xd0], edi
sar edi, 0x1f
cmp ebp, edi
setg al
sete dl
mov ebx, dword [esp + 0xd0]
cmp esi, ebx
seta cl
and ecx, edx
or ecx, eax
test cl, cl
je 0x4acd0b
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x114], edx
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x30]
cmp eax, edi
xchg edi, ebx
setl bl
xchg edi, ebx
sete cl
mov edx, dword [esp + 0x2c]
cmp edx, ebx
setb bl
and ebx, ecx
or ebx, edi
test bl, bl
jne 0x4acc84
cmp eax, ebp
setg al
sete cl
cmp edx, esi
setae dl
and edx, ecx
or edx, eax
test dl, dl
je 0x4acbd8
mov eax, dword [esp + 0x70]
mov ecx, eax
add eax, esi
mov edx, eax
add eax, 0xe5263700
mov ebx, ecx
add ecx, 0xe7076a80
mov edi, dword [esp + 0x114]
mov dword [esp + 0x140], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x144], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x148], edi
mov dword [esp + 0x14c], eax
add esi, ebx
mov eax, dword [esp + 0xcc]
adc ebp, eax
add edx, 0xe5263700
adc ebp, 0x80000001
mov dword [esp + 0x150], ebp
mov dword [esp + 0x154], ecx
add ebx, 0xe7076a80
adc eax, 0x80000001
mov dword [esp + 0x158], eax
mov byte [esp + 0x15c], 1
add esp, 0x124
ret
mov dword [esp + 0x54], ebp
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0xe5263700
mov edi, edx
add edx, esi
mov dword [esp + 0xc8], edx
add edx, 0xe5263700
mov ebp, dword [esp + 0x120]
mov dword [esp + 0x140], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x144], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], eax
add ecx, edi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x4c]
adc ecx, eax
add ebx, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edx
add edi, esi
mov ecx, dword [esp + 0x54]
adc eax, ecx
mov ecx, dword [esp + 0xc8]
add ecx, 0xe5263700
adc eax, 0x80000001
mov dword [esp + 0x158], eax
mov byte [esp + 0x15c], 1
add esp, 0x124
ret
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0xe5263700
mov ebp, dword [esp + 0x114]
mov dword [esp + 0x140], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x144], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x148], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x14c], ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x150], ebp
mov dword [esp + 0x154], eax
add edx, ecx
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x4c]
adc eax, ecx
add ebx, 0xe5263700
adc eax, 0x80000001
mov dword [esp + 0x158], eax
mov byte [esp + 0x15c], 1
add esp, 0x124
ret
mov ebx, esi
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x60]
mov ecx, edi
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x60]
jmp 0x4acafb
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov byte [esp + 0x15c], 0
add esp, 0x124
ret
mov eax, ecx
mov ecx, edx
jmp 0x4ac3a5
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov byte [esp + 0x15c], 0
add esp, 0x124
ret
cmp byte [edx], 0x2c
je 0x4ac37e
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.004ad0c0
mov ebx, dword [esp + 8]
movzx eax, byte [esp + 0x14]
neg ebx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x11c]
jmp 0x4ac38a
mov ecx, eax
xor eax, eax
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.004ac1f0