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

Disassembly:
sub esp, 0x9c
push ebx
push ebp
push esi
mov esi, dword [esp + 0xac]
mov eax, dword [esi + 0x14]
test eax, eax
push edi
mov dword [esp + 0x28], 1
jne 0x49dae3
mov ecx, esi
call fcn.0054f560
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esi + 4]
call fcn.0054f1b0
mov ecx, dword [esi + 0x14]
fld dword [ecx + 0x28]
fcomp dword [0x85a5cc]
fnstsw ax
test ah, 5
jnp 0x49e5cc
mov eax, dword [esi + 0x1c]
test ah, 2
jne 0x49e5cc
movsx eax, word [esi + 0x22]
movzx edx, word [0x8cd508]
cmp eax, edx
je 0x49db41
movzx ecx, word [0x8cd50c]
cmp eax, ecx
je 0x49db41
movzx edx, word [0x8cd510]
cmp eax, edx
je 0x49db41
movzx ecx, word [0x8cd514]
cmp eax, ecx
je 0x49db41
movzx edx, word [0x8cd4fc]
cmp eax, edx
jne 0x49db49
mov dword [esp + 0x28], 0xd
push esi
call fcn.0049d520
fstp dword [esp]
call fcn.0049d4d0
add esp, 4
cmp eax, 1
jne 0x49db6d
call fcn.0049d350
movzx eax, al
mov dword [esp + 0x10], eax
jmp 0x49db79
call fcn.0049d3a0
movzx ecx, al
mov dword [esp + 0x10], ecx
movsx edx, word [esi + 0x22]
mov eax, dword [esi + 0x14]
test eax, eax
mov edi, dword [edx*4 + 0xa9b0c8]
mov dword [esp + 0x78], edi
jne 0x49dba2
mov ecx, esi
call fcn.0054f560
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esi + 4]
call fcn.0054f1b0
mov eax, dword [esi + 0x14]
fld dword [0xb6f9b0]
fmul dword [eax + 0x14]
add eax, 0x10
fld dword [0xb6f9b4]
mov byte [esp + 0x27], 1
fmul dword [eax + 8]
faddp st(1)
fld dword [0xb6f9ac]
fmul dword [eax]
faddp st(1)
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
je 0x49dbdd
mov byte [esp + 0x27], 0
movzx eax, byte [edi + 0xd]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jle 0x49de2c
jmp 0x49dc10
mov edi, dword [esp + 0x78]
lea ecx, [ecx]
push ebx
mov ecx, edi
call fcn.004c4c70
mov ebp, eax
mov al, byte [ebp + 0xc]
test al, al
jne 0x49de1d
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x49dc3f
mov ecx, esi
call fcn.0054f560
mov ecx, dword [esi + 0x14]
push ecx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov edx, dword [esi + 0x14]
push ebp
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0059c890
fld dword [esp + 0x44]
fadd dword [esp + 0x20]
add esp, 0xc
fstp dword [esp + 0x38]
fld dword [esp + 0x18]
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x1c]
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
mov al, byte [ebp + 0x10]
cmp al, 0xc8
jbe 0x49dc8a
mov dl, byte [ebp + 0x11]
mov cl, 0x64
cmp cl, dl
sbb edi, edi
add edi, 2
jmp 0x49dc8c
xor edi, edi
fld dword [ebp + 4]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x49dca0
mov al, 1
jmp 0x49dca2
xor al, al
xor al, byte [esp + 0x27]
je 0x49de1d
cmp edi, dword [esp + 0x10]
jne 0x49de1d
push 0
fld dword [0xb7c4e4]
fmul dword [0x858ca8]
push 0
fld dword [0xb7c4e0]
movzx eax, byte [edi + 0xa9ad94]
fmul dword [0x85a5c8]
push 0x41700000
push 0
push 0x3fc00000
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0x42480000
push ecx
mov dword [esp + 0x58], eax
lea edx, [esp + 0x4c]
fstp dword [esp]
push edx
fild dword [esp + 0x5c]
push 0xff
fmul st(1)
call fcn.00821b40
movzx ecx, byte [edi + 0x8a6218]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
push eax
fmul st(1)
call fcn.00821b40
movzx edx, byte [edi + 0x8a6214]
mov dword [esp + 0x64], edx
fild dword [esp + 0x64]
push eax
fmul st(1)
call fcn.00821b40
fstp st(0)
push eax
lea eax, [ebx + esi]
push 0
push eax
call fcn.006fc580
mov eax, dword [esi + 0x14]
add esp, 0x54
test eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
jne 0x49dd86
mov ecx, esi
call fcn.0054f560
mov ecx, dword [esi + 0x14]
push ecx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov edi, dword [esi + 0x14]
test edi, edi
jne 0x49dda0
mov ecx, esi
call fcn.0054f560
mov edx, dword [esi + 0x14]
push edx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov cl, byte [esp + 0x10]
mov edx, dword [esp + 0x2c]
xor eax, eax
mov al, byte [esp + 0x28]
add al, cl
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x40]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, dword [edi]
mov edx, dword [edi + 4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x14]
mov dword [eax + 8], ecx
add edx, 0x20
mov ecx, dword [edx]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x4c]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00724770
add esp, 0x40
mov eax, dword [esp + 0x44]
inc ebx
cmp ebx, eax
jl 0x49dc09
test eax, eax
je 0x49e018
fild dword [esp + 0x44]
mov edi, dword [esp + 0x10]
cmp edi, 3
fdivr dword [0x858624]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul st(1)
fstp dword [esp + 0x40]
fstp st(0)
jae 0x49e018
fld dword [0xc812a8]
fcomp dword [0x858b8c]
fnstsw ax
test ah, 0x41
jne 0x49df4f
mov al, byte [edi + 0xa9ad94]
mov ecx, 0x32
cmp al, cl
jae 0x49de95
mov dword [esp + 0x44], ecx
jmp 0x49de9c
movzx edx, al
mov dword [esp + 0x44], edx
mov al, byte [edi + 0x8a6218]
cmp al, cl
jae 0x49deac
mov dword [esp + 0x10], ecx
jmp 0x49deb3
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [edi + 0x8a6214]
cmp al, cl
jb 0x49dec0
movzx ecx, al
fild dword [esp + 0x44]
push 0
push 1
push 1
fmul dword [0x8a621c]
sub esp, 0xc
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], 0
fstp dword [esp + 8]
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x28]
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], 0
fmul dword [0x8a621c]
fstp dword [esp + 4]
fild dword [esp + 0x40]
fmul dword [0x8a621c]
fstp dword [esp]
push 0x41600000
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + 4], eax
push 0
mov dword [ecx + 8], edx
call fcn.007000e0
add esp, 0x38
fld dword [0xc812a8]
fcomp dword [0x858c28]
fnstsw ax
test ah, 0x41
jne 0x49e018
movzx eax, byte [edi + 0xa9ad94]
mov dword [esp + 0x20], eax
push 0
push 0
fild dword [esp + 0x28]
push 0x42200000
push 0x3f800000
push 0x41400000
fmul dword [0xb7c4f8]
fmul dword [0xc812a8]
fmul dword [0x85a5c4]
call fcn.00821b40
movzx ecx, byte [edi + 0x8a6218]
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
push eax
fmul dword [0xb7c4f8]
fmul dword [0xc812a8]
fmul dword [0x85a5c4]
call fcn.00821b40
movzx edx, byte [edi + 0x8a6214]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
push eax
fmul dword [0xb7c4f8]
fmul dword [0xc812a8]
fmul dword [0x85a5c4]
call fcn.00821b40
mov ecx, dword [0xc403f4]
push eax
push pe_nt_image_headers32
push 0xc1000000
push 0
push 0
push 0x41000000
lea eax, [esp + 0x6c]
push eax
push ecx
push 2
push esi
call fcn.0070ba00
add esp, 0x44
movsx eax, word [esi + 0x22]
movzx edx, word [0x8cd50c]
cmp eax, edx
je 0x49e179
movzx ecx, word [0x8cd514]
cmp eax, ecx
je 0x49e179
movzx edx, word [0x8cd510]
cmp eax, edx
jne 0x49e0e1
mov eax, dword [0xa9ade0]
test al, 1
jne 0x49e078
or eax, 1
mov dword [0xa9ade0], eax
mov dword [0xa9add4], 0xbd343958
mov dword [0xa9add8], 0xbe85a1cb
mov dword [0xa9addc], 0x3fc7ced9
test al, 2
jne 0x49e0a2
or eax, 2
mov dword [0xa9ade0], eax
mov dword [0xa9adc8], 0x3e6353f8
mov dword [0xa9adcc], 0xbe85a1cb
mov dword [0xa9add0], 0x3feef9db
mov eax, dword [0xa9add4]
mov ecx, dword [0xa9add8]
mov edx, dword [0xa9addc]
mov dword [esp + 0x2c], eax
mov eax, dword [0xa9adc8]
mov dword [esp + 0x30], ecx
mov ecx, dword [0xa9adcc]
mov dword [esp + 0x34], edx
mov edx, dword [0xa9add0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
jmp 0x49e1d9
movzx ecx, word [0x8cd4f4]
cmp eax, ecx
jne 0x49e5cc
mov eax, dword [0xa9ade0]
test al, 4
jne 0x49e11f
or eax, 4
mov dword [0xa9ade0], eax
mov dword [0xa9adbc], 0x402b126f
mov dword [0xa9adc0], 0x3fa18937
mov dword [0xa9adc4], 0xbf09fbe7
test al, 8
jne 0x49e149
or eax, 8
mov dword [0xa9ade0], eax
mov dword [0xa9adb0], 0x402b126f
mov dword [0xa9adb4], 0x3f36872b
mov dword [0xa9adb8], 0xbe020c4a
mov edx, dword [0xa9adbc]
mov eax, dword [0xa9adc0]
mov ecx, dword [0xa9adc4]
mov dword [esp + 0x2c], edx
mov edx, dword [0xa9adb0]
mov dword [esp + 0x30], eax
mov eax, dword [0xa9adb4]
mov dword [esp + 0x34], ecx
mov ecx, dword [0xa9adb8]
jmp 0x49e1cd
mov dword [esp + 0x14], 0xbe10624e
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0xbe20c49c
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 0x3fcdb22d
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], 0x3e418937
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], 0xbe20c49c
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], 0x3fec8b44
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [0xb7cb84]
mov eax, ecx
shr eax, 1
and eax, 0x3fff
cmp eax, 0x2ee0
jae 0x49e1f3
mov al, 2
jmp 0x49e1fc
cmp eax, 0x3c18
sbb al, al
inc al
movzx eax, al
cmp eax, 2
jne 0x49e3e3
fld dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
fadd dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
fmul dword [0x858b8c]
fstp dword [esp + 0x28]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x28]
fadd dword [esp + 0x30]
mov dword [esp + 0x48], edx
fmul dword [0x858b8c]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x49e25e
mov ecx, esi
call fcn.0054f560
mov edx, dword [esi + 0x14]
push edx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov edi, dword [esi + 0x14]
test edi, edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
jne 0x49e290
mov ecx, esi
call fcn.0054f560
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esi + 4]
call fcn.0054f1b0
mov ebx, dword [esi + 0x14]
test ebx, ebx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
jne 0x49e2c2
mov ecx, esi
call fcn.0054f560
mov ecx, dword [esi + 0x14]
push ecx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov ebp, dword [esi + 0x14]
test ebp, ebp
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
jne 0x49e2f4
mov ecx, esi
call fcn.0054f560
mov edx, dword [esi + 0x14]
push edx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov esi, dword [esi + 0x14]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x80]
push edi
push ecx
call fcn.0059c890
lea edx, [esp + 0x78]
push edx
mov edi, eax
lea eax, [esp + 0xa4]
push ebx
push eax
call fcn.0059c890
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0xa4]
push ebp
push edx
mov ebx, eax
call fcn.0059c890
mov ebp, eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0xc8]
push esi
push ecx
call fcn.0059c890
add esp, 0x30
push 0x42700000
push 0
push 0
push 0xff
mov ecx, dword [edi]
push 1
push 0x3f800000
push 0
push 0x3f800000
push 0x3f000000
push 0
push 0
push 0
push 0x3f000000
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 8]
mov dword [edx + 8], ecx
mov ecx, dword [ebx]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [edx + 8], ecx
mov ecx, dword [ebp]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [ebp + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00724b60
add esp, 0x64
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
test eax, eax
je 0x49e3f0
test ch, 1
je 0x49e5cc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
jne 0x49e422
mov ecx, esi
call fcn.0054f560
mov ecx, dword [esi + 0x14]
push ecx
lea ecx, [esi + 4]
call fcn.0054f1b0
fld dword [esp + 0x14]
mov edi, dword [esi + 0x14]
test edi, edi
fadd dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x5c], ecx
fmul dword [0x858b8c]
fstp dword [esp + 0x28]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x28]
fadd dword [esp + 0x30]
mov dword [esp + 0x54], edx
fmul dword [0x858b8c]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
jne 0x49e478
mov ecx, esi
call fcn.0054f560
mov edx, dword [esi + 0x14]
push edx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov ebx, dword [esi + 0x14]
test ebx, ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
jne 0x49e4aa
mov ecx, esi
call fcn.0054f560
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esi + 4]
call fcn.0054f1b0
mov ebp, dword [esi + 0x14]
test ebp, ebp
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
jne 0x49e4dc
mov ecx, esi
call fcn.0054f560
mov ecx, dword [esi + 0x14]
push ecx
lea ecx, [esi + 4]
call fcn.0054f1b0
mov esi, dword [esi + 0x14]
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0xa4]
push edi
push eax
call fcn.0059c890
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x98]
push ebx
push edx
mov edi, eax
call fcn.0059c890
mov ebx, eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0xb0]
push ebp
push ecx
call fcn.0059c890
lea edx, [esp + 0x6c]
push edx
mov ebp, eax
lea eax, [esp + 0xa4]
push esi
push eax
call fcn.0059c890
add esp, 0x30
push 0x42700000
push 0xff
push 0xff
push 0xff
mov edx, dword [edi]
push 1
push 0x3f800000
push 0x3f000000
push 0x3f800000
push 0x3f800000
push 0
push 0x3f000000
push 0
push 0x3f800000
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov dword [ecx + 4], edx
mov edx, dword [edi + 8]
mov dword [ecx + 8], edx
mov edx, dword [ebx]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [ebx + 4]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 8]
mov dword [ecx + 8], edx
mov edx, dword [ebp]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [ebp + 4]
mov dword [ecx + 4], edx
mov edx, dword [ebp + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
call fcn.00724b60
add esp, 0x64
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret