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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
fld qword [0x4a38a8]
push ebx
mov ebx, dword [ebp + 0x2c]
push esi
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
fstp qword [ebx + 0x18]
mov cl, byte [esi + 0x1c]
mov eax, dword [esi + 0x3c]
not cl
movzx ecx, cl
and ecx, 8
shl ecx, 4
push edi
xor edi, edi
or ecx, 3
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], ecx
cmp eax, edi
je 0x450c3f
mov esi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x58], 0xffffcfff
mov dword [esp + 0x54], ecx
jmp 0x450cc5
push 0x30
lea edx, [esp + 0x94]
push edi
push edx
call fcn.00477c40
lea eax, [esp + 0x74]
lea edx, [esp + 0x84]
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 0xc]
mov ecx, 1
mov dword [esp + 0xa8], edx
mov edx, dword [eax + 0x18]
add esp, 0xc
cmp byte [esi + 0x1d], 0
mov dword [esp + 0x94], ecx
mov byte [esp + 0xa8], 5
mov dword [esp + 0xa0], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
jne 0x450ca4
mov eax, dword [eax + 0x10]
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x90]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x58], 0xfff0ffff
mov dword [esp + 0x54], 3
mov dword [esp + 0x14], edi
mov esi, ecx
xor edx, edx
cmp dword [ebp + 0x24], edi
setne dl
xor eax, eax
cmp dword [ebp + 0x28], edi
setne al
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], eax
jmp 0x450ce6
mov esi, dword [esp + 0x18]
xor edi, edi
cmp dword [esi + 4], 0
fld1
mov ecx, dword [esi + 0xc]
fstp qword [esp + 0x80]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x1c], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x50], edi
jle 0x450dc8
mov ecx, dword [esi + 8]
mov eax, dword [ecx + edi*4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [esp + 0x40]
push ecx
push eax
mov eax, dword [ebp + 0xc]
push edx
push eax
call fcn.004505f0
add esp, 0x1c
test eax, eax
je 0x450dc4
movzx ecx, word [eax + 0x10]
or dword [esp + 0x10], 0x11000
test cl, 1
je 0x450fb9
mov ecx, dword [eax]
mov dx, word [ecx + 2]
or dword [esp + 0x10], 0x40000
mov ebx, 0x800
and dx, bx
cmp dx, bx
jne 0x450f96
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x19
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], 1
mov ebx, dword [ebp + 0x2c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
or dword [esp + 0x28], edx
or dword [esp + 0x2c], eax
inc edi
cmp edi, dword [esi + 4]
jl 0x450d34
mov dword [esp + 0x50], edi
cmp edi, dword [esi + 4]
jge 0x450fce
cmp byte [esi + 0x1a], 0
jne 0x450fce
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 8]
mov ebx, dword [ecx + edi*4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [esp + 0x38]
push 0x3c
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
call fcn.004505f0
add esp, 0x1c
test eax, eax
je 0x450ea7
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [esp + 0x38]
push 0x18
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
push edx
call fcn.004505f0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov esi, eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x54]
push 0x24
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
call fcn.004505f0
mov ecx, eax
push esi
push ecx
lea eax, [esp + 0xc0]
call fcn.00435f30
add esp, 0x40
test esi, esi
je 0x450e7d
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
or dword [esp + 0x10], 0x100000
or dword [esp + 0x28], edx
or dword [esp + 0x2c], eax
mov dword [esp + 0x24], 1
test ecx, ecx
je 0x450e9b
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x1c]
inc dword [esp + 0x24]
or dword [esp + 0x10], 0x200000
or dword [esp + 0x28], edx
or dword [esp + 0x2c], eax
or dword [esp + 0x10], 0x22000
mov esi, dword [esp + 0x18]
mov ebx, dword [ebp + 0x2c]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [ebp + 0xc]
push edi
push eax
mov eax, dword [edx + 4]
push ecx
mov ecx, dword [ebp + 8]
push esi
push eax
push ecx
call fcn.004509e0
add esp, 0x20
test eax, eax
je 0x450ef6
mov edx, dword [esp + 0x70]
neg edx
sbb edx, edx
and edx, 0x2000000
or edx, 0x1022000
or dword [esp + 0x10], edx
mov dword [esp + 0x5c], 0
mov eax, dword [ebp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0xc]
push edi
push eax
mov eax, dword [ebp + 8]
push ecx
push esi
push edx
push eax
call fcn.004507d0
add esp, 0x18
test eax, eax
je 0x450f25
or dword [esp + 0x10], 0x40022000
mov dword [esp + 0x60], 0
cmp dword [esp + 0x14], 0
je 0x450ffb
cmp dword [esp + 0x10], 0
je 0x450ffb
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ecx + 0x30]
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [edx + 0x34]
test eax, eax
jle 0x450f7d
mov esi, dword [ecx + 8]
mov dword [esp + 0x48], eax
mov ecx, dword [esi]
cmp ecx, 0x3f
jge 0x450f73
mov eax, 1
xor edx, edx
call fcn.0047c7a0
not eax
not edx
and ebx, eax
and edi, edx
add esi, 4
sub dword [esp + 0x48], 1
jne 0x450f58
mov esi, dword [esp + 0x18]
or ebx, edi
mov edi, dword [esp + 0x50]
mov ebx, dword [ebp + 0x2c]
jne 0x450ff3
or dword [esp + 0x10], 0x800000
jmp 0x450ffb
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x450da9
mov ecx, dword [ecx]
test ecx, ecx
je 0x450da9
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
jmp 0x450da9
test cl, cl
jns 0x450dac
or dword [esp + 0x10], 0x80000
jmp 0x450dac
cmp byte [esi + 0x18], 0
je 0x450eaa
test dword [esp + 0x10], 0xc0000
jne 0x450eaa
or dword [esp + 0x10], 0x4000000
jmp 0x450eaa
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edi*4]
mov edx, ecx
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x48], edx
fild dword [esp + 0x48]
test edx, edx
jge 0x45101b
fadd qword [0x494428]
cmp dword [esp + 0x44], 0
je 0x45107c
mov eax, dword [esp + 0x20]
fld st(0)
mov edx, dword [eax]
fadd st(1)
mov eax, edx
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
test eax, eax
jge 0x451040
fadd qword [0x494428]
fcompp
fnstsw ax
test ah, 5
jp 0x45107c
shr edx, 1
fstp st(0)
mov dword [esp + 0x44], edx
fild dword [esp + 0x44]
test edx, edx
jge 0x45105f
fadd qword [0x494428]
mov dword [esp + 0x44], ecx
fild dword [esp + 0x44]
test ecx, ecx
jge 0x451071
fadd qword [0x494428]
fdivr st(1)
call fcn.0047c550
mov dword [esp + 0x1c], eax
fdiv qword [esp + 0x80]
fst qword [esp + 0x48]
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45109a
fstp st(1)
fst qword [esp + 0x48]
jmp 0x45109c
fstp st(0)
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
test ecx, 0x100f3000
jne 0x4510c6
add eax, eax
add eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jge 0x45110c
fadd qword [0x494428]
jmp 0x45110c
fstp st(0)
fild dword [edx]
test eax, eax
jge 0x4510d4
fadd qword [0x494428]
sub esp, 8
fstp qword [esp]
call fcn.00435ef0
add esp, 8
cmp dword [esp + 0x14], 0
je 0x451100
cmp dword [esp + 0x38], 0
je 0x451100
fild dword [esp + 0x1c]
fld qword [esp + 0x48]
fadd st(1), st(0)
fxch st(1)
fmulp st(2)
jmp 0x451108
fimul dword [esp + 0x1c]
fld qword [esp + 0x48]
fadd st(1), st(0)
fxch st(1)
cmp dword [esp + 0x5c], 0
fst qword [esp + 0x38]
je 0x45113d
fstp st(0)
sub esp, 8
fstp qword [esp]
call fcn.00435ef0
fld qword [esp + 0x50]
add esp, 8
fmul st(1), st(0)
fxch st(1)
fmul qword [0x4a38a0]
fadd qword [esp + 0x38]
fst qword [esp + 0x38]
cmp dword [esp + 0x60], 0
je 0x45116a
fstp st(0)
sub esp, 8
fstp qword [esp]
call fcn.00435ef0
fld qword [esp + 0x50]
add esp, 8
fmul st(1), st(0)
fxch st(1)
fmul qword [0x4a38a0]
fadd qword [esp + 0x38]
fst qword [esp + 0x38]
fld qword [0x4a3898]
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x451263
fcom qword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x451263
mov ecx, dword [esp + 0x24]
fstp st(1)
mov ebx, dword [ebp + 0xc]
fstp st(0)
mov esi, dword [esp + 0x34]
mov edx, dword [ebx + 4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ecx
call fcn.00435d20
fld qword [0x4a2548]
fld qword [0x49a6c0]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x20]
fld qword [0x4a38a0]
fld qword [0x4a3898]
mov ebx, dword [ebx + 0x18]
fld qword [esp + 0x48]
lea esi, [eax + 0x10]
test ebx, ebx
je 0x45123f
test byte [esi + 2], 2
jne 0x451232
mov eax, dword [esi + 0x10]
and eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x14]
and ecx, dword [ebp + 0x20]
cmp eax, dword [esp + 0x88]
jne 0x451232
cmp ecx, edx
jne 0x451232
movzx eax, word [esi]
test al, 0x83
je 0x451211
cmp dword [esp + 0x20], 0
je 0x45120d
dec dword [esp + 0x20]
jmp 0x451232
fdiv st(3)
jmp 0x451232
test al, 0x3c
je 0x451226
cmp dword [esp + 0x24], 0
je 0x451222
dec dword [esp + 0x24]
jmp 0x451232
fdiv st(2)
jmp 0x451232
mov ecx, 0x800
cmp ax, cx
je 0x451232
fmul st(4)
fcom st(1)
dec ebx
add esi, 0x28
fnstsw ax
test ah, 0x41
je 0x4511d6
mov esi, dword [esp + 0x18]
fstp st(2)
mov ebx, dword [ebp + 0x2c]
fstp st(2)
mov ecx, dword [esp + 0x10]
fstp st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45125d
fstp st(1)
jmp 0x45125f
fstp st(0)
fld qword [esp + 0x38]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x45126f
test ecx, ecx
je 0x4512b1
fcom qword [ebx + 0x18]
fnstsw ax
test ah, 5
jnp 0x45128f
fcom qword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x4512b1
fld qword [ebx + 8]
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x4512b1
mov eax, dword [esp + 0x28]
fstp qword [ebx + 0x18]
and ecx, dword [esp + 0x58]
mov dword [ebx + 0x20], eax
fstp qword [ebx + 8]
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x24], eax
mov dword [ebx], ecx
mov dword [ebx + 4], edi
mov dword [ebx + 0x10], edx
jmp 0x4512b5
fstp st(1)
fstp st(0)
mov edi, dword [ebp + 0x10]
cmp dword [edi + 0x3c], 0
jne 0x4512e1
mov esi, dword [esi + 0x20]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x58], 0xffffcfff
mov dword [esp + 0x54], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
test esi, esi
jne 0x450ce0
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x4512fc
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
test dword [ecx + 0xc], 0x1000000
je 0x4512fc
or dword [ebx], 0x2000000
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push ebx
push eax
mov eax, dword [ebp + 0x1c]
push edx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push esi
push ecx
push edi
push edx
push eax
call fcn.004548e0
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
push ebx
push esi
push ecx
mov ecx, dword [ebp + 0xc]
mov ebx, edi
call fcn.0043ccc0
mov edx, dword [esp + 0x84]
mov eax, dword [ebp + 0x2c]
add esp, 0x30
or dword [eax], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret