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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d61a0
push eax
mov eax, dword [esp + 0x14]
mov dword fs:[0], esp
sub esp, 0x68
xor edx, edx
cmp eax, edx
push ebx
push ebp
push esi
push edi
mov esi, ecx
je 0x45f46d
cmp dword [esi + 0x80], edx
je 0x45f46d
cmp dword [esi + 0x88], edx
jle 0x45f46d
mov eax, dword [esp + 0x88]
xor ebp, ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov di, word [eax]
mov bx, word [eax + 2]
mov eax, 0x2710
inc di
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x80], edx
cmp ecx, edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], 0x412e8480
je 0x45edfb
mov eax, dword [esp + 0x8c]
push ecx
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.0041a670
add esp, 0xc
lea edx, [esp + 0x48]
push eax
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0x88], 1
call fcn.004051b0
fld dword [esp + 0x40]
fmul dword [esi + 0x2c]
fld dword [esp + 0x3c]
fmul dword [esi + 0x28]
mov byte [esp + 0x80], 0
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x30]
faddp st(1)
fld dword [esi + 0x7c]
fdivr st(1)
call sub.MSVCRT.dll__ftol
fstp st(0)
fld dword [esp + 0x40]
fmul dword [esi + 0x38]
fld dword [esp + 0x3c]
fmul dword [esi + 0x34]
mov ebp, eax
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x3c]
faddp st(1)
fld dword [esi + 0x7c]
fdivr st(1)
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], eax
fstp st(0)
xor edx, edx
mov al, byte [esi + 0x74]
test al, al
je 0x45f126
cmp ecx, edx
je 0x45ee75
mov eax, dword [esi + 0x80]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov cx, word [esi + 0x86]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
mov eax, edi
movsx ebx, cx
cdq
idiv ebx
mov eax, edi
mov dword [esp + 0x30], edx
cdq
idiv ebx
mov edx, dword [esp + 0x18]
lea edi, [eax + ebp]
mov eax, dword [esp + 0x30]
cmp di, 1
lea ebx, [eax + edx]
jl 0x45f46d
cmp di, word [esi + 0x84]
jge 0x45f46d
cmp bx, 1
jl 0x45f46d
cmp bx, cx
jge 0x45f46d
movsx ecx, word [esi + 0x86]
movsx edx, di
mov eax, edx
mov dword [esp + 0x14], edi
imul eax, ecx
movsx ecx, bx
add eax, ecx
mov ecx, dword [esi + 0x80]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], ecx
movsx eax, word [eax + 4]
dec eax
cmp edx, eax
jge 0x45f417
mov edx, dword [esp + 0x88]
mov edi, ecx
mov byte [esp + 0x13], 0
mov ebp, ebx
movsx eax, word [edx + 6]
movsx edx, bx
add eax, 0xfffffffe
cmp edx, eax
mov dword [esp + 0x28], eax
jge 0x45f0a2
movsx eax, word [esi + 0x86]
lea edx, [eax + eax*2]
shl edx, 3
mov dword [esp + 0x30], edx
lea edx, [edx + ecx + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, edi
sub eax, ecx
cmp byte [eax + 0x24], 9
jb 0x45ef11
cmp byte [edi + 0xc], 9
jb 0x45ef11
cmp byte [edi + 0x24], 9
jb 0x45ef11
cmp byte [edi + 0x3c], 9
jb 0x45ef11
cmp byte [edx], 9
jae 0x45ef2e
mov ecx, dword [esp + 0x28]
add ebp, 2
movsx eax, bp
add edi, 0x30
add edx, 0x30
cmp eax, ecx
jl 0x45eeec
mov ecx, dword [esp + 0x18]
jmp 0x45f0a2
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
lea ebx, [edi + 0x18]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x48]
lea edx, [esp + 0x60]
push ecx
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x88], 3
call fcn.00405230
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x88], 4
call fcn.004051b0
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
mov byte [esp + 0x80], 0
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
faddp st(1)
fsqrt
fcom qword [esp + 0x34]
fnstsw ax
test ah, 1
je 0x45efd1
fstp qword [esp + 0x34]
mov dword [esp + 0x90], ebx
jmp 0x45efd3
fstp st(0)
fld dword [esp + 0x40]
fmul dword [esi + 0x2c]
fld dword [esp + 0x3c]
fmul dword [esi + 0x28]
mov byte [esp + 0x13], 1
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x30]
faddp st(1)
fdiv dword [esi + 0x7c]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x40]
fmul dword [esi + 0x38]
fld dword [esp + 0x3c]
fmul dword [esi + 0x34]
mov ebx, eax
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x3c]
faddp st(1)
fdiv dword [esi + 0x7c]
call sub.MSVCRT.dll__ftol
movsx edx, word [esp + 0x14]
movsx ecx, bx
add edx, ecx
mov dword [esp + 0x18], eax
cmp edx, 1
mov dword [esp + 0x28], edx
jl 0x45f417
movsx eax, ax
movsx edx, bp
mov dword [esp + 0x30], eax
add eax, edx
cmp eax, 1
mov dword [esp + 0x2c], eax
jl 0x45f417
movsx eax, word [esi + 0x84]
cmp dword [esp + 0x28], eax
jge 0x45f417
movsx eax, word [esi + 0x86]
cmp dword [esp + 0x2c], eax
jge 0x45f417
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
add edx, ebx
imul eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
lea eax, [eax + ecx + 1]
lea ebx, [edx + ebp + 1]
lea edx, [eax + eax*2]
lea ecx, [edi + edx*8]
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x14]
movsx eax, word [esp + 0x20]
movsx edx, di
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x45f0d2
movsx eax, word [esp + 0x24]
movsx edx, bx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x45f417
cmp word [esp + 0x1c], 0xa
jg 0x45f417
mov al, byte [esp + 0x13]
test al, al
je 0x45f0f0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
jmp 0x45f10a
movsx eax, word [esi + 0x86]
add edi, 2
lea eax, [eax + eax*2]
mov dword [esp + 0x14], edi
shl eax, 4
add ecx, eax
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x88]
movsx eax, word [edx + 4]
movsx edx, di
dec eax
cmp edx, eax
jl 0x45eeb1
jmp 0x45f417
cmp ecx, edx
je 0x45f181
sub ecx, dword [esi + 0x80]
movsx edi, word [esi + 0x86]
sar ecx, 4
mov eax, ecx
cdq
idiv edi
mov eax, ecx
mov ebx, edx
cdq
idiv edi
lea edi, [eax + ebp]
mov eax, dword [esp + 0x18]
add ebx, eax
cmp di, 1
mov dword [esp + 0x2c], ebx
jl 0x45f46d
cmp di, word [esi + 0x84]
jge 0x45f46d
cmp bx, 1
jl 0x45f46d
cmp bx, word [esi + 0x86]
jge 0x45f46d
movsx edx, word [esi + 0x86]
movsx eax, di
mov ecx, eax
mov dword [esp + 0x14], edi
imul ecx, edx
movsx edx, bx
add ecx, edx
mov edx, dword [esi + 0x80]
shl ecx, 4
add ecx, edx
mov edx, dword [esp + 0x88]
movsx edx, word [edx + 4]
dec edx
cmp eax, edx
jge 0x45f417
mov eax, dword [esp + 0x88]
mov edi, ecx
movsx edx, bx
movsx eax, word [eax + 6]
add eax, 0xfffffffe
mov byte [esp + 0x13], 0
cmp edx, eax
mov ebp, ebx
mov dword [esp + 0x28], eax
jge 0x45f3a7
movsx ebx, word [esi + 0x86]
shl ebx, 4
mov dword [esp + 0x30], ebx
lea edx, [ecx + ebx + 0x1c]
jmp 0x45f1f6
mov ebx, dword [esp + 0x30]
mov eax, edi
sub eax, ebx
cmp byte [eax + 0x1c], 9
jb 0x45f217
cmp byte [edi + 0xc], 9
jb 0x45f217
cmp byte [edi + 0x1c], 9
jb 0x45f217
cmp byte [edi + 0x2c], 9
jb 0x45f217
cmp byte [edx], 9
jae 0x45f234
mov ebx, dword [esp + 0x28]
add ebp, 2
movsx eax, bp
add edi, 0x20
add edx, 0x20
cmp eax, ebx
jl 0x45f1f2
mov ebx, dword [esp + 0x2c]
jmp 0x45f3a7
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x18]
lea ebx, [edi + 0x10]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x54]
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x50]
mov byte [esp + 0x88], 6
call fcn.00405230
push eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x88], 7
call fcn.004051b0
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
mov byte [esp + 0x80], 0
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
faddp st(1)
fsqrt
fcom qword [esp + 0x34]
fnstsw ax
test ah, 1
je 0x45f2d7
fstp qword [esp + 0x34]
mov dword [esp + 0x90], ebx
jmp 0x45f2d9
fstp st(0)
fld dword [esp + 0x40]
fmul dword [esi + 0x2c]
fld dword [esp + 0x3c]
fmul dword [esi + 0x28]
mov byte [esp + 0x13], 1
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x30]
faddp st(1)
fdiv dword [esi + 0x7c]
call sub.MSVCRT.dll__ftol
fld dword [esp + 0x40]
fmul dword [esi + 0x38]
fld dword [esp + 0x3c]
fmul dword [esi + 0x34]
mov ebx, eax
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esi + 0x3c]
faddp st(1)
fdiv dword [esi + 0x7c]
call sub.MSVCRT.dll__ftol
movsx ecx, word [esp + 0x14]
movsx edx, bx
add ecx, edx
mov dword [esp + 0x18], eax
cmp ecx, 1
mov dword [esp + 0x28], ecx
jl 0x45f417
movsx eax, ax
movsx ecx, bp
mov dword [esp + 0x30], eax
add eax, ecx
cmp eax, 1
mov dword [esp + 0x2c], eax
jl 0x45f417
movsx eax, word [esi + 0x84]
cmp dword [esp + 0x28], eax
jge 0x45f417
movsx ecx, word [esi + 0x86]
cmp dword [esp + 0x2c], ecx
jge 0x45f417
mov eax, dword [esp + 0x1c]
imul ecx, edx
mov edx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
add eax, ebx
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 4
lea ebx, [eax + ebp + 1]
add ecx, edi
mov dword [esp + 0x2c], ebx
mov edi, dword [esp + 0x14]
movsx eax, word [esp + 0x20]
movsx edx, di
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x45f3d3
movsx eax, word [esp + 0x24]
movsx edx, bx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x45f417
cmp word [esp + 0x1c], 0xa
jg 0x45f417
mov al, byte [esp + 0x13]
test al, al
je 0x45f3ed
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
jmp 0x45f400
movsx eax, word [esi + 0x86]
add edi, 2
shl eax, 5
mov dword [esp + 0x14], edi
add ecx, eax
mov eax, dword [esp + 0x88]
movsx edx, word [eax + 4]
movsx eax, di
dec edx
cmp eax, edx
jl 0x45f1b8
mov edi, dword [esp + 0x94]
fld qword [edi]
fmul qword [0x4e4538]
fcomp qword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x45f46d
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
mov ecx, esi
call fcn.0045f490
fld qword [esp + 0x34]
fcomp qword [edi]
mov ecx, eax
fnstsw ax
test ah, 0x41
je 0x45f46d
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [edi], edx
mov dword [edi + 4], eax
mov eax, ecx
jmp 0x45f46f
xor eax, eax
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 0x10