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

Disassembly:
push 0xffffffffffffffff
push 0x4a6b71
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd4
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xf4]
lea ecx, [esp + 0x88]
lea eax, [edi + 0x70]
push eax
call fcn.0040f9a0
xor ebx, ebx
mov ecx, 0x7fff
mov eax, 0xffff8001
mov dword [esp + 0xb8], ebx
mov word [esp + 0x20], cx
mov word [esp + 0x22], cx
mov word [esp + 0x24], ax
mov word [esp + 0x26], ax
mov dword [esp + 0xec], ebx
mov word [esp + 0x6c], cx
mov word [esp + 0x6e], cx
mov word [esp + 0x70], ax
mov word [esp + 0x72], ax
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x114]
lea ecx, [esp + 0x50]
push esi
mov byte [esp + 0xf0], 2
mov dword [esp + 0x30], ebx
call fcn.0040f9a0
mov ecx, dword [0x4dca40]
and ecx, 3
cmp cl, 1
jle 0x489213
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push edx
mov edx, dword [esp + 0x114]
push eax
push ecx
mov ecx, dword [esp + 0x114]
push esi
lea eax, [esp + 0x3a]
push edx
mov edx, dword [esp + 0x114]
push eax
mov eax, dword [esp + 0x114]
push ecx
mov ecx, dword [esp + 0x114]
push edx
push eax
push ecx
push edi
call fcn.004899e0
movsx edx, word [esp + 0x56]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
add esp, 0x2c
lea ecx, [esp + 0x14]
mov byte [esp + 0xec], 1
fstp dword [eax]
push fcn.00456390
fstp dword [esp + 0x14]
call fcn.0043fe20
fld dword [esp + 0x10]
jmp 0x4899c6
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x88]
or ebp, 0xffffffff
mov dword [esp + 0x1c], ebx
mov word [ecx], bx
mov eax, dword [edx]
cmp eax, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
jne 0x489295
fld dword [esp + 0x104]
fmul dword [0x4a8370]
push fcn.00456390
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 1
fstp dword [esp + 0x14]
call fcn.0043fe20
fld dword [esp + 0x10]
jmp 0x4899c6
cmp byte [esp + 0x118], bl
je 0x4892f7
mov ecx, dword [0x4dc33c]
cmp ecx, ebx
jbe 0x4892f7
mov eax, dword [esp + 0x90]
push 0x11
push 0xbf800000
push 0x3f800000
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 0x94]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edx
mov eax, edx
movsx edx, word [esp + 0x108]
mov dword [esp + 0x1c], edx
push eax
fild dword [esp + 0x20]
push ecx
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x110]
call fcn.0043adc0
mov ecx, 7
lea esi, [esp + 0x88]
lea edi, [esp + 0xb8]
lea eax, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x80]
push eax
push ecx
mov dword [esp + 0x20], ebx
call fcn.004281b0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x98]
add esp, 8
cmp eax, ebx
mov dword [esp + 0x20], edx
je 0x489349
mov dword [esp + 0x9c], eax
jmp 0x489351
mov byte [esp + 0x99], 1
mov edi, dword [esp + 0x1c]
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
cmp ax, bx
jle 0x489389
movsx esi, ax
sub eax, esi
mov dword [esp + 0x18], eax
lea ecx, [esp + 0xb8]
lea edx, [esp + 0xd4]
push ecx
push edx
call fcn.004281b0
add esp, 8
dec esi
jne 0x48936e
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x88]
lea eax, [esp + 0xdc]
inc ecx
push edx
push eax
mov dword [esp + 0x20], ecx
call fcn.004281b0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x90]
mov si, word [esp + 0x78]
mov dword [esp + 0x28], ecx
add esp, 8
mov ecx, dword [eax]
mov dword [esp + 0x24], edx
cmp ecx, ebx
je 0x489418
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
cmp ecx, eax
jne 0x4893f4
cmp byte [esp + 0xa0], bl
jne 0x489418
movsx eax, word [esp + 0x20]
movsx edx, si
sub eax, edx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fcomp dword [esp + 0x104]
fnstsw ax
test ah, 1
jne 0x489389
mov al, byte [0x4dca40]
fld dword [esp + 0x108]
test al, 3
je 0x489495
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
push ecx
lea ecx, [esp + 0x18]
push edx
push ecx
mov ecx, dword [esp + 0x100]
lea edx, [esp + 0x36]
push edx
mov edx, dword [esp + 0x110]
fld dword [ecx + 0x2c]
fmul qword [0x4dcb20]
push ecx
mov ecx, dword [esp + 0x110]
mov word [esp + 0x88], ax
fstp dword [esp]
push edx
mov edx, dword [esp + 0x110]
push ecx
push edx
push 2
push eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xe0]
push eax
push ecx
call fcn.00482520
add esp, 0x30
jmp 0x4894c7
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0xf8]
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push ecx
push 2
mov word [esp + 0x80], ax
push eax
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.00483e60
add esp, 0x18
mov al, byte [esp + 0x118]
fstp qword [esp + 0x80]
cmp al, bl
je 0x4895b1
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0043ff80
dec eax
push eax
movsx eax, word [esp + 0x7e]
movsx ecx, si
push eax
push ecx
push 0x4c6640
call fcn.00443600
mov eax, dword [esp + 0x2c]
add esp, 0x18
lea edx, [esp + 0x14]
cmp eax, ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
je 0x489527
mov eax, dword [eax]
jmp 0x489529
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x489535
mov ecx, dword [eax]
jmp 0x489537
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], ebx
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
je 0x489551
mov dword [esp + 0x40], eax
jmp 0x489556
mov byte [esp + 0x3d], 1
mov byte [esp + 0x44], bl
mov ecx, dword [esp + 0x2c]
cmp dword [ecx], ebx
je 0x4895a4
cmp eax, dword [esp + 0x40]
jne 0x48956e
cmp byte [esp + 0x44], bl
jne 0x4895a4
cmp byte [eax + 4], bl
je 0x489584
push 0x4c663c
call fcn.00443600
mov eax, dword [esp + 0x38]
add esp, 4
mov edx, dword [eax + 0xc]
push edx
push 0x4c6634
call fcn.00443600
add esp, 8
lea ecx, [esp + 0x2c]
call fcn.004403e0
mov eax, dword [esp + 0x34]
jmp 0x48955a
push 0x4b18c8
call fcn.00443600
add esp, 4
cmp byte [0x4dc2f0], bl
je 0x4895e1
cmp word [esp + 0x18], bx
jle 0x4895e1
mov eax, dword [0x4dc33c]
cmp eax, ebx
jbe 0x4895e1
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 0x14]
push ecx
push edx
push 0x15
push eax
call fcn.0046fc10
add esp, 0x10
lea eax, [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov dword [esp + 0x30], eax
je 0x4895f9
mov eax, dword [eax]
jmp 0x4895fb
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x489607
mov ecx, dword [eax]
jmp 0x489609
xor ecx, ecx
cmp ebp, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
jl 0x489682
mov eax, dword [eax + 0xc]
sub esp, 8
sub eax, ebp
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fstp qword [esp + 0x80]
fld dword [esp + 0x110]
fdivr qword [esp + 0x80]
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
fmul dword [esp + 0x110]
mov eax, dword [esp + 0x50]
add esp, 8
inc eax
fsubr qword [esp + 0x78]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
fld st(0)
fmulp st(1)
fadd qword [esp + 0xac]
fstp qword [esp + 0xac]
cmp eax, ebx
je 0x48968c
mov dword [esp + 0x40], eax
jmp 0x489691
mov byte [esp + 0x3d], 1
mov byte [esp + 0x44], bl
mov ecx, dword [esp + 0x2c]
cmp dword [ecx], ebx
je 0x4898b8
cmp eax, dword [esp + 0x40]
jne 0x4896b1
cmp byte [esp + 0x44], bl
jne 0x4898b8
mov edx, dword [esp + 0x50]
mov ebp, dword [eax + 0xc]
mov ecx, dword [edx]
cmp ecx, ebx
je 0x48981c
movsx edx, bp
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fld dword [esp + 0x108]
fmul dword [0x4a8208]
movsx esi, di
mov dword [esp + 0x10], esi
fild dword [esp + 0x10]
fld st(0)
fadd st(2)
fld st(3)
fcompp
fnstsw ax
test ah, 0x41
je 0x489720
fsub st(1)
fxch st(1)
fxch st(2)
fcompp
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x4898a6
mov ecx, dword [esp + 0x58]
lea eax, [esi + edx]
cdq
sub eax, edx
sar eax, 1
mov word [ecx + 4], ax
mov edi, eax
jmp 0x4898a2
fstp st(0)
fstp st(0)
cmp ecx, ebx
fstp st(0)
je 0x48981c
movsx eax, bp
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x78]
fld dword [esp + 0x108]
fmul dword [0x4a8310]
fstp dword [esp + 0xb4]
movsx ecx, word [esp + 0x1c]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd dword [esp + 0xb4]
fcomp dword [esp + 0x78]
fnstsw ax
test ah, 1
je 0x48981c
push 8
call sub.MFC42.DLL_operatornew
add esp, 4
cmp eax, ebx
je 0x4897a0
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ebx
add edx, ecx
mov word [eax + 6], bx
mov word [eax + 4], bx
mov word [eax + 4], dx
mov word [eax + 6], bx
jmp 0x4897a2
xor eax, eax
mov edx, dword [esp + 0x50]
cmp dword [edx], ebx
jne 0x4897bc
mov dword [eax], eax
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], eax
jmp 0x4897fe
mov edx, dword [esp + 0x5c]
mov dword [eax], edx
mov ecx, dword [esp + 0x58]
cmp ecx, ebx
je 0x4897e0
mov dword [ecx], eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
cmp ecx, dword [edx]
jne 0x4897fe
mov dword [edx], eax
jmp 0x4897fe
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov cl, byte [esp + 0x60]
cmp cl, bl
je 0x4897f4
mov edx, dword [esp + 0x50]
mov dword [edx], eax
cmp byte [esp + 0x61], bl
je 0x4897fe
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x50]
cmp dword [ecx], ebx
jne 0x489751
push 8
call sub.MFC42.DLL_operatornew
add esp, 4
cmp eax, ebx
je 0x48983e
mov dword [eax], ebx
mov word [eax + 6], bx
mov word [eax + 4], bx
mov word [eax + 4], bp
mov word [eax + 6], bx
jmp 0x489840
xor eax, eax
mov edx, dword [esp + 0x50]
cmp dword [edx], ebx
jne 0x48985a
mov dword [eax], eax
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], eax
jmp 0x48989c
mov edx, dword [esp + 0x5c]
mov dword [eax], edx
mov ecx, dword [esp + 0x58]
cmp ecx, ebx
je 0x48987e
mov dword [ecx], eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
cmp ecx, dword [edx]
jne 0x48989c
mov dword [edx], eax
jmp 0x48989c
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov cl, byte [esp + 0x60]
cmp cl, bl
je 0x489892
mov edx, dword [esp + 0x50]
mov dword [edx], eax
cmp byte [esp + 0x61], bl
je 0x48989c
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], eax
mov edi, ebp
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x2c]
call fcn.004403e0
mov eax, dword [esp + 0x34]
jmp 0x489695
lea ecx, [esp + 0x2c]
call fcn.00440460
mov eax, dword [esp + 0x34]
mov ebp, dword [eax + 0xc]
mov al, byte [0x4dd258]
cmp al, bl
je 0x4898ed
lea ecx, [esp + 0x14]
call fcn.0043ff80
sub eax, 2
cdq
sub eax, edx
mov esi, eax
sar esi, 1
cmp esi, 1
mov dword [esp + 0x10], esi
jge 0x4898f6
mov esi, 1
mov dword [esp + 0x10], esi
fild dword [esp + 0x10]
lea ecx, [esp + 0x14]
fmul qword [esp + 0x80]
fadd qword [esp + 0xa4]
fstp qword [esp + 0xa4]
call fcn.0043ff80
dec eax
mov edx, dword [esp + 0x4c]
imul eax, esi
add edx, eax
push fcn.00456390
lea ecx, [esp + 0x18]
mov dword [esp + 0x50], edx
call fcn.0043fe20
mov ecx, dword [esp + 0x88]
cmp dword [ecx], ebx
je 0x489962
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
cmp edx, eax
jne 0x48935c
cmp byte [esp + 0xa0], bl
je 0x48935c
cmp dword [esp + 0x48], ebx
jle 0x489977
fild dword [esp + 0x48]
fdivr qword [esp + 0xac]
fsqrt
jmp 0x48997d
fld qword [0x4a8228]
mov eax, dword [esp + 0x10c]
fstp dword [eax]
cmp dword [esp + 0x4c], ebx
jle 0x48999b
fild dword [esp + 0x4c]
fdivr qword [esp + 0xa4]
fsqrt
jmp 0x4899a8
fld dword [esp + 0x104]
fmul dword [0x4a8370]
fstp dword [esp + 0x78]
push fcn.00456390
lea ecx, [esp + 0x18]
mov byte [esp + 0xf0], 1
call fcn.0043fe20
fld dword [esp + 0x78]
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xe0
ret