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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov ebp, dword [esp + 0xb0]
mov esi, dword [ebp + 0x38]
and dword [ebp + 0x84], 0xffffffdb
mov edi, dword [ebp + 0x7c]
test edi, edi
jne 0x45acc8
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], ebp
mov eax, dword [0x68bb7c]
call dword [eax + 0x32c]
mov ebx, dword [ebp + 0x7c]
test ebx, ebx
jle 0x45b453
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x74], 0
mov dword [esp + 0x84], 0xffffffff
xor eax, eax
mov edx, 0xffffffff
xor edi, edi
mov dword [esp + 0x2c], esi
jmp 0x45ad0d
inc eax
cmp eax, ebx
je 0x45ad28
mov esi, dword [ecx + eax*4]
mov esi, dword [esi + 0x50]
test esi, esi
jne 0x45ad08
mov edi, eax
cmp edx, 0xffffffff
jne 0x45ad08
mov edx, eax
inc eax
cmp eax, ebx
jne 0x45ad0d
lea esi, [esi]
mov dword [esp + 0x84], edx
mov dword [esp + 0x74], edi
mov esi, dword [esp + 0x2c]
xor eax, eax
test esi, esi
sete al
mov dword [esp + 0x40], eax
mov edx, dword [ebp]
mov dword [esp + 0x54], edx
mov ecx, dword [edx + 0xc0]
mov dword [esp + 0x38], ecx
mov eax, ecx
neg eax
shl eax, 1
mov esi, dword [edx + 0x44]
add esi, eax
mov dword [esp + 0x64], esi
add eax, dword [edx + 0x40]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x45ae78
mov edi, dword [esp + 0x64]
mov dword [esp + 0x50], edi
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x58]
test edx, edx
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x48]
je 0x45ae90
cmp ecx, edx
jle 0x45ae90
lea esi, [ecx + eax*2]
mov dword [esp + 0x70], esi
sub ecx, edx
mov edx, ecx
shr edx, 0x1f
add ecx, edx
sar ecx, 1
add ecx, eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
test ebx, ebx
jle 0x45aeb8
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 0
xor eax, eax
mov esi, dword [esp + 0x50]
mov dword [esp + 0x2c], ebp
jmp 0x45ae53
mov ebp, dword [edx + 0x2c]
mov edi, dword [edx + 8]
neg edi
shl edi, 1
sub edi, ebp
add esi, edi
mov edi, dword [edx + 0x4c]
test edi, edi
je 0x45ae24
cmp edi, 1
je 0x45b41c
cmp edi, 2
je 0x45b430
cmp edi, 3
jne 0x45ae3c
cmp eax, dword [esp + 0x84]
je 0x45ae3c
cmp eax, dword [esp + 0x74]
je 0x45ae4a
nop
mov edi, dword [esp + 0x54]
test byte [edi + 0x98], 1
je 0x45ae3c
add dword [esp + 0x5c], ebp
mov ebp, dword [edx + 4]
add dword [esp + 0x6c], ebp
cmp eax, dword [esp + 0x74]
je 0x45ae4a
sub esi, dword [esp + 0x70]
inc dword [esp + 0x44]
inc eax
cmp eax, ebx
je 0x45aed8
mov edx, dword [ecx + eax*4]
mov edi, dword [edx + 0x50]
test edi, edi
jne 0x45ae4a
mov ebp, dword [esp + 0x40]
test ebp, ebp
jne 0x45ade8
mov ebp, dword [edx + 0x30]
mov edi, dword [edx + 0xc]
neg edi
shl edi, 1
sub edi, ebp
add esi, edi
jmp 0x45adf6
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x58]
test edx, edx
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x48]
jne 0x45ad91
lea edi, [edx + eax*2]
mov dword [esp + 0x70], edi
sub edx, ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
add edx, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
jmp 0x45adb8
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xb0], ebp
mov eax, dword [0x68bb7c]
mov eax, dword [eax + 0x368]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp eax
mov dword [esp + 0x50], esi
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], ebp
jmp 0x45b1c1
mov esi, dword [ebx + 0x2c]
mov edi, dword [esp + 0x68]
mov edx, dword [ebx + 0x4c]
test edx, edx
je 0x45af48
cmp edx, 1
je 0x45b344
cmp edx, 2
je 0x45b408
cmp edx, 3
jne 0x45b355
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x2c], edx
je 0x45b355
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x2c], edx
je 0x45b355
mov edx, dword [esp + 0x5c]
test edx, edx
jle 0x45b3f0
fild dword [esp + 0x5c]
push esi
fidivr dword [esp]
pop edi
sub dword [esp + 0x5c], esi
sub dword [esp + 0x6c], eax
fimul dword [esp + 0x50]
fnstcw word [esp + 0x8e]
mov dx, word [esp + 0x8e]
mov dh, 0xc
mov word [esp + 0x8c], dx
fldcw word [esp + 0x8c]
fistp dword [esp + 0x88]
fldcw word [esp + 0x8e]
mov edi, dword [esp + 0x88]
lea edx, [esi + edi]
cmp eax, edx
jg 0x45b38c
sub dword [esp + 0x50], edi
mov esi, edx
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x2c], edi
je 0x45b3a2
mov edi, dword [esp + 0x40]
test edi, edi
je 0x45b300
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x48], edx
mov eax, edx
neg eax
mov edi, dword [esp + 0x64]
lea eax, [edi + eax*2]
mov edx, dword [ebx + 8]
mov dword [esp + 0x60], edx
mov edx, esi
mov esi, dword [esp + 0x44]
test esi, esi
je 0x45b248
mov esi, dword [esp + 0x70]
imul esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
test edi, edi
je 0x45b3e4
mov dword [esp + 0x4c], 0
mov edi, dword [esp + 0x68]
sub edi, esi
mov esi, dword [esp + 0x30]
add esi, edx
sub esi, dword [esp + 0x38]
cmp edi, esi
jge 0x45b02b
sub edi, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add edx, edi
mov edi, dword [esp + 0x64]
sub edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
add esi, eax
sub esi, dword [esp + 0x38]
cmp edi, esi
jge 0x45b04b
sub edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
add eax, edi
mov esi, edx
cmp edx, ebp
jle 0x45b053
mov esi, ebp
mov edi, eax
cmp eax, ecx
jle 0x45b05b
mov edi, ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x24], ecx
mov ebp, dword [esp + 0x34]
mov dword [ebx + 0x28], ebp
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x45b2a0
mov ebp, dword [esp + 0x60]
lea ecx, [edx + ebp*2]
add ecx, dword [esp + 0x30]
mov dword [esp + 0x4c], ecx
mov ebp, dword [esp + 0x38]
cmp ecx, ebp
jge 0x45b090
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x4c]
mov dword [ebx + 0x34], ebp
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x38], ecx
mov ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x4c]
mov dword [ebx + 0x44], ebp
mov ebp, dword [esp + 0x3c]
add ecx, dword [ebp + 0x60]
mov dword [ebx + 0x48], ecx
mov ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x78], ebp
mov ecx, dword [ebx + 0x20]
cmp edx, esi
jle 0x45b298
sub edx, esi
cmp eax, edi
jle 0x45b270
sub eax, edi
mov ebp, ecx
and ebp, 0xa
cmp ebp, 0xa
je 0x45b280
mov ebp, ecx
and ebp, 5
cmp ebp, 5
je 0x45b290
test cl, 8
jne 0x45b258
test cl, 2
jne 0x45b118
mov ebp, edx
shr ebp, 0x1f
add edx, ebp
sar edx, 1
add edx, dword [esp + 0x30]
test cl, 1
jne 0x45b265
and ecx, 4
jne 0x45b133
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
add eax, dword [esp + 0x34]
test esi, esi
jle 0x45b224
test edi, edi
jle 0x45b224
add edx, dword [esp + 0x60]
add eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x45b214
mov ecx, edx
sub ecx, dword [esp + 0x38]
cmp dword [esp + 0x68], ecx
jl 0x45b224
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x58]
mov dword [esp], esi
call fcn.0047f51c
dec dword [esp + 0x44]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x34], edi
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x30], ebp
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x7c], edx
jle 0x45aeb4
mov ecx, dword [eax + 0x78]
mov esi, dword [eax]
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0x2c]
mov ebx, dword [ecx + edx*4]
mov edi, dword [ebx + 0x50]
test edi, edi
jne 0x45b320
mov esi, dword [ebx]
mov dword [esp + 0x58], esi
mov edi, dword [esi + 0x48]
mov eax, edi
shl eax, 1
mov ebp, dword [ebx + 0x18]
test ebp, ebp
jle 0x45b3d4
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
jle 0x45b3c0
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x45af00
mov esi, dword [ebx + 0x30]
mov edi, dword [esp + 0x64]
jmp 0x45af07
mov ecx, eax
sub ecx, dword [esp + 0x38]
cmp dword [esp + 0x64], ecx
jge 0x45b16b
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x58]
mov dword [esp], edx
call fcn.0047f7b0
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004039bc
jmp 0x45b18f
mov dword [esp + 0x4c], 0
xor esi, esi
jmp 0x45b00d
mov edx, dword [esp + 0x30]
test cl, 1
je 0x45b125
mov eax, dword [esp + 0x34]
jmp 0x45b137
xor eax, eax
mov ebp, ecx
and ebp, 0xa
cmp ebp, 0xa
jne 0x45b0f3
add esi, edx
mov ebp, ecx
and ebp, 5
cmp ebp, 5
jne 0x45b101
add edi, eax
jmp 0x45b101
xor edx, edx
jmp 0x45b0db
mov ebp, dword [esp + 0x48]
lea ecx, [eax + ebp*2]
add ecx, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
mov ebp, dword [esp + 0x38]
cmp ecx, ebp
jge 0x45b2bb
mov dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x34], ecx
mov ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x4c]
mov dword [ebx + 0x38], ebp
mov ebp, dword [esp + 0x3c]
add ecx, dword [ebp + 0x60]
mov dword [ebx + 0x44], ecx
mov ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x4c]
mov dword [ebx + 0x48], ebp
mov ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x70]
mov dword [esp + 0x78], ecx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x4c], ebp
jmp 0x45b0ce
mov edi, dword [ebx + 8]
mov dword [esp + 0x60], edi
mov eax, edi
neg eax
mov edi, dword [esp + 0x68]
lea edx, [edi + eax*2]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x48], eax
mov eax, esi
jmp 0x45afe4
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0047f7b0
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004039bc
jmp 0x45b1a3
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x2c], edx
je 0x45af48
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x6c]
add edx, dword [esp + 0x50]
jns 0x45afbd
mov edi, dword [esp + 0x5c]
add edi, esi
sub edi, dword [esp + 0x6c]
add edi, dword [esp + 0x50]
cmp eax, edi
jl 0x45b440
sub esi, eax
add dword [esp + 0x50], esi
mov esi, eax
jmp 0x45afbd
sub esi, eax
add dword [esp + 0x50], esi
mov esi, eax
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x2c], edi
jne 0x45afbd
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x45afbd
add esi, dword [esp + 0x50]
mov dword [esp + 0x50], 0
jmp 0x45afbd
mov ecx, eax
mov eax, dword [esp + 0x58]
add ecx, dword [eax + 0xbc]
jmp 0x45b1f6
mov ebp, dword [esi + 0xb8]
add ebp, eax
jmp 0x45b1eb
mov dword [esp + 0x4c], esi
xor esi, esi
jmp 0x45b00d
mov dword [esp + 0x88], edi
fild dword [esp + 0x88]
push esi
fidivr dword [esp]
pop edx
jmp 0x45af5d
mov edx, dword [esp + 0x74]
cmp dword [esp + 0x2c], edx
jne 0x45b355
jmp 0x45af48
cmp eax, dword [esp + 0x84]
jne 0x45ae3c
jmp 0x45ae24
cmp eax, dword [esp + 0x74]
jne 0x45ae42
jmp 0x45ae24
add esi, edx
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
jmp 0x45afbd
mov dword [esp + 0x74], 0
mov dword [esp + 0x84], 0xffffffff
jmp 0x45ad37