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

Disassembly:
push ebx
push esi
mov ebx, ecx
push edi
push ebp
mov al, 1
sub esp, 0x70
cmp byte [ebx + 0xc4], 0
je 0x49fdb5
mov edx, dword [ebx]
cmp byte [edx + 0x314], 0
je 0x49fdb5
mov edi, dword [edx + 0x310]
movsx esi, word [edi + 0x5c]
mov ebp, esi
cmp ebp, 0x6e
je 0x49fd70
cmp esi, 0x80
je 0x49fd70
cmp esi, 0x94
jne 0x49fdb5
cmp dword [edi + 0x1a4], edx
jne 0x49fdb5
cmp byte [edi + 0x1c8], 0
je 0x49fdb5
mov ecx, dword [0x885b48]
sub ecx, dword [ebx + 0xc0]
cmp ecx, 0x3e8
mov eax, ecx
jb 0x49fdb3
sub eax, 0x3e8
inc dword [ebx + 0xac]
add dword [ebx + 0xc0], 0x3e8
cmp eax, 0x3e8
jae 0x49fd97
xor al, al
test al, al
je 0x49fdc4
mov eax, dword [0x885b48]
mov dword [ebx + 0xc0], eax
mov ecx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xac]
cmp ecx, eax
je 0x49fe37
sub eax, ecx
test eax, eax
jge 0x49fde0
mov edi, eax
neg edi
jmp 0x49fde2
mov edi, eax
cmp edi, 0x186a0
jle 0x49fdf1
mov edi, 0x3039
jmp 0x49fe25
cmp edi, 0x2710
jle 0x49fe00
mov edi, 0x4d2
jmp 0x49fe25
cmp edi, 0x3e8
jle 0x49fe10
mov edi, 0x7b
jmp 0x49fe25
cmp edi, 0x32
jle 0x49fe20
mov edi, 0x2a
jmp 0x49fe25
mov edi, 1
test eax, eax
jge 0x49fe31
sub dword [ebx + 0xb0], edi
jmp 0x49fe37
add dword [ebx + 0xb0], edi
mov eax, dword [0x9412ec]
and eax, 0xf
jne 0x49fe7a
mov edx, dword [ebx]
cmp byte [edx + 0x314], 0
je 0x49fe60
mov esi, dword [edx + 0x310]
add esi, 0x34
mov eax, esi
push dword [eax + 4]
push dword [esi]
jmp 0x49fe6a
add edx, 0x34
mov eax, edx
push dword [eax + 4]
push dword [edx]
mov ecx, 0x8f6754
call fcn.0042c990
fstp dword [ebx + 0x100]
fldz
fld dword [ebx + 0x100]
fstp st(1)
fld dword [0x5f6a4c]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x49fe9b
fld dword [0x5f6a4c]
fstp st(1)
fst dword [ebx + 0x100]
fld dword [ebx + 0x100]
fstp st(1)
fld dword [0x5f6a50]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x49fec3
fld dword [0x5f6a50]
fstp st(1)
fst dword [ebx + 0x100]
mov ecx, dword [ebx]
mov al, byte [ecx + 0x15c]
shr al, 2
and al, 1
je 0x49fef4
cmp byte [ecx + 0x314], 0
je 0x49fef4
push 0
fstp st(0)
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493650
jmp 0x49ff05
push 0
fstp st(0)
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004935f0
test al, al
je 0x4a05dc
mov edi, dword [ebx]
mov eax, dword [edi + 0x224]
cmp eax, 0xc
je 0x4a05dc
cmp eax, 0xd
je 0x4a05dc
cmp byte [edi + 0x314], 0
je 0x4a02b1
cmp dword [ebx + 4], 0
jne 0x4a05dc
mov eax, dword [edi + 0x310]
mov ebp, dword [eax + 0x1e0]
test ebp, ebp
je 0x49ff61
movsx eax, word [ebp + 0x5c]
push eax
call fcn.00413de0
test al, al
pop ecx
jne 0x4a05dc
mov edx, dword [ebx]
mov ecx, dword [edx + 0x310]
mov ebp, dword [ecx + 0x284]
mov eax, ebp
cmp eax, 1
fldz
jne 0x4a00d0
cmp dword [ecx + 0x224], 4
je 0x4a00d0
mov dword [edx + 0x224], 1
mov ebp, dword [ebx]
lea eax, [ebp + 0x34]
lea edi, [esp + 0x40]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
fstp st(0)
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x1d4]
push dword [0x5f6a54]
push 3
push esi
push eax
call fcn.00403710
mov eax, dword [ebx]
add esp, 0x10
mov ecx, dword [eax + 0x310]
cmp word [ecx + 0x5c], 0x8e
jne 0x4a0026
call fcn.00552230
test al, al
je 0x4a0026
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
push dword [0x5f6a58]
push 0x86
push 0
push eax
call fcn.00403710
mov ebp, dword [ebx]
add esp, 0x10
mov dword [ebp + 0x1d8], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1d8]
push eax
push fcn.004ce8f0
call fcn.00401820
mov eax, dword [ebx]
mov word [eax + 0x2e8], 0xb
mov eax, dword [ebx]
mov dword [eax + 0x224], 0x36
jmp 0x4a0071
mov eax, dword [ebx]
mov word [eax + 0x2e8], 0xb
mov eax, dword [ebx]
push eax
push 0
call fcn.004ce8f0
pop ecx
pop ecx
mov ecx, dword [ebx]
mov al, byte [ecx + 0x154]
and al, 0xfe
or al, 1
mov byte [ecx + 0x154], al
mov esi, dword [ebx]
mov eax, dword [esi + 0x310]
mov dword [esi + 0x2fc], eax
mov edx, dword [ebx]
lea eax, [edx + 0x2fc]
mov ecx, dword [edx + 0x2fc]
push eax
call fcn.004a7480
fld dword [esp + 0x40]
mov eax, dword [ebx]
fstp dword [eax + 0x34]
fld dword [esp + 0x44]
fstp dword [eax + 0x38]
fld dword [esp + 0x48]
fstp dword [eax + 0x3c]
mov ecx, dword [ebx]
push 1
call fcn.004c5a30
mov esi, dword [ebx]
mov eax, dword [esi + 0x310]
add eax, 0x78
fld dword [eax]
fstp dword [esi + 0x78]
fld dword [eax + 4]
fstp dword [esi + 0x7c]
fld dword [eax + 8]
fstp dword [esi + 0x80]
mov edi, dword [ebx]
mov al, byte [edi + 0x15b]
and al, 0xef
or al, 0x10
mov byte [edi + 0x15b], al
call fcn.005581c0
jmp 0x4a05dc
cmp ebp, 5
jne 0x4a0207
cmp dword [ecx + 0x224], 4
je 0x4a0207
add ecx, 4
lea edi, [esp + 0x4c]
fld dword [0x5f6a5c]
mov eax, ecx
add ecx, 0x30
fmul dword [eax]
fadd dword [ecx]
fstp dword [esp + 0x64]
fld dword [0x5f6a5c]
fmul dword [eax + 4]
lea esi, [esp + 0x64]
fadd dword [ecx + 4]
fstp dword [esp + 0x68]
fld dword [0x5f6a5c]
fmul dword [eax + 8]
fadd dword [ecx + 8]
fstp dword [esp + 0x6c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x5f6a60]
fadd dword [esp + 0x54]
mov byte [esp + 0x5b], 0
lea eax, [esp + 0x5b]
push eax
push eax
fstp dword [esp]
push dword [esp + 0x58]
push dword [esp + 0x58]
fstp st(0)
call fcn.004b3ae0
add esp, 0x10
cmp byte [esp + 0x5b], 0
fstp dword [esp + 0x30]
je 0x4a016a
fld dword [0x5f6a64]
fadd dword [esp + 0x30]
fstp dword [esp + 0x54]
mov eax, dword [ebx]
mov dword [eax + 0x224], 1
mov ecx, dword [ebx]
push 1
call fcn.004c5a30
mov eax, dword [ebx]
push eax
push 0
call fcn.004ce8f0
mov ebp, dword [ebx]
pop ecx
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x1d4]
pop ecx
push dword [0x5f6a54]
push 3
push esi
push eax
call fcn.00403710
mov edx, dword [ebx]
add esp, 0x10
mov eax, dword [edx + 0x4c]
push dword [0x5f6a54]
push 0x99
push 0
push eax
call fcn.00403710
fld dword [esp + 0x5c]
mov eax, dword [ebx]
add esp, 0x10
fstp dword [eax + 0x34]
fld dword [esp + 0x50]
fstp dword [eax + 0x38]
fld dword [esp + 0x54]
fstp dword [eax + 0x3c]
mov ecx, dword [ebx]
push 1
call fcn.004c5a30
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x310]
add eax, 0x78
fld dword [eax]
fstp dword [ecx + 0x78]
fld dword [eax + 4]
fstp dword [ecx + 0x7c]
fld dword [eax + 8]
fstp dword [ecx + 0x80]
jmp 0x4a05dc
mov al, byte [ecx + 0x50]
shr al, 3
movzx edx, al
mov eax, edx
cmp eax, 5
je 0x4a08f0
cmp edx, 6
je 0x4a08f7
cmp dword [ecx + 0x224], 4
je 0x4a0900
lea edi, [ecx + 0x78]
fld dword [edi + 4]
fst st(1)
fmul st(0)
fld dword [edi]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [edi + 8]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst st(1)
fcomp dword [0x5f6a68]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4a0907
fld dword [0x8f2c20]
fcomp dword [0x5f6a6c]
fnstsw ax
test ah, 5
jne 0x4a0910
mov ecx, dword [ebx]
mov ebp, dword [ecx + 0x310]
mov al, byte [ebp + 0x122]
shr al, 3
and al, 1
jne 0x4a0917
push ebp
push 0xd
fstp st(0)
call fcn.004d83e0
jmp 0x4a05dc
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493650
test al, al
je 0x4a05dc
mov dword [esp + 0x18], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [ebx]
mov edx, dword [eax + 0x2ec]
test edx, edx
je 0x4a033e
mov al, byte [edx + 0x50]
and al, 7
cmp al, 2
jne 0x4a033e
mov eax, edx
mov dword [esp + 0x5c], edx
mov esi, dword [eax + 0x284]
cmp esi, 1
jne 0x4a033e
mov dword [esp + 0x18], 1
mov ebp, dword [ebx]
mov al, byte [ebp + 0x15a]
and al, 0xef
or al, 0x10
mov byte [ebp + 0x15a], al
mov eax, dword [esp + 0x5c]
mov cl, byte [eax + 0x50]
shr cl, 3
movzx eax, cl
cmp eax, 5
je 0x4a033e
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebx]
push eax
call fcn.004e4c00
cmp dword [esp + 0x18], 0
fldz
jne 0x4a08e7
mov edi, dword [ebx]
add edi, 0x34
mov eax, edi
fld dword [eax]
fsub dword [0x5f6a70]
fstp dword [esp + 0x20]
fld dword [0x5f6a70]
fadd dword [edi]
fstp dword [esp + 0x24]
fld dword [edi + 4]
fst st(1)
fsub dword [0x5f6a70]
fstp dword [esp + 0x28]
fld dword [0x5f6a70]
fadd st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x20]
fmul dword [0x5f6a74]
fadd dword [0x5f6a78]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 8], eax
jg 0x4a03c6
mov dword [esp + 8], 0
fld dword [esp + 0x28]
fmul dword [0x5f6a74]
fadd dword [0x5f6a78]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x1c]
mov edi, dword [esp + 0x38]
test edi, edi
jg 0x4a03fd
xor edi, edi
fld dword [esp + 0x24]
fmul dword [0x5f6a74]
fadd dword [0x5f6a78]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x38]
cmp eax, 0x63
mov dword [esp + 4], eax
jl 0x4a043f
mov dword [esp + 4], 0x63
fld dword [esp + 0x2c]
fmul dword [0x5f6a74]
fadd dword [0x5f6a78]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x38]
cmp eax, 0x63
mov dword [esp + 0x14], eax
jl 0x4a0481
mov dword [esp + 0x14], 0x63
cmp word [0x95cc64], 0xffff
jae 0x4a0497
inc word [0x95cc64]
jmp 0x4a08e0
fstp st(0)
call fcn.004b1f60
mov word [0x95cc64], 1
cmp edi, dword [esp + 0x14]
mov dword [esp + 0x10], edi
jg 0x4a055c
lea eax, [edi + edi*2]
mov dword [esp + 0xc], eax
shl dword [esp + 0xc], 5
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi*4]
mov dword [esp + 0xc], eax
lea eax, [eax]
mov esi, dword [esp + 8]
mov eax, esi
cmp eax, dword [esp + 4]
jg 0x4a0545
mov edi, esi
add edi, dword [esp + 0xc]
mov ebp, edi
lea edx, [esp + 0x5c]
imul ebp, ebp, 0x28
lea eax, [esp + 0x60]
push edx
mov ecx, dword [ebx]
push eax
push dword [esp + 0x34]
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x34]
push ecx
mov ecx, ebx
add ebp, 0x665608
lea eax, [ebp + 0x10]
push eax
call fcn.004a0cd0
lea eax, [esp + 0x60]
lea edx, [esp + 0x5c]
add ebp, 0x14
push edx
push eax
mov eax, dword [ebx]
mov ecx, ebx
push dword [esp + 0x34]
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x34]
push eax
push ebp
call fcn.004a0cd0
inc esi
inc edi
cmp esi, dword [esp + 4]
jle 0x4a04e2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
add dword [esp + 0xc], 0x64
cmp eax, dword [esp + 0x14]
jle 0x4a04d0
cmp dword [esp + 0x5c], 0
je 0x4a05dc
cmp dword [esp + 0x18], 0
jne 0x4a05dc
mov eax, dword [esp + 0x5c]
mov cl, byte [eax + 0x50]
shr cl, 3
movzx eax, cl
cmp eax, 7
jne 0x4a0590
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebx]
push eax
push 0xe
call fcn.004d83e0
jmp 0x4a05dc
mov eax, dword [esp + 0x5c]
mov ebp, dword [eax + 0x284]
cmp ebp, 1
je 0x4a05b0
mov ecx, dword [ebx]
push eax
push 0xf
call fcn.004d83e0
jmp 0x4a05dc
mov eax, dword [esp + 0x5c]
cmp dword [eax + 0x1a4], 0
jne 0x4a05dc
mov eax, dword [ebx]
mov word [eax + 0x2e8], 0
mov ecx, dword [ebx]
movzx edx, word [ecx + 0x2e8]
mov eax, dword [esp + 0x5c]
push edx
push eax
call fcn.004e0920
cmp byte [ebx + 0xe0], 0
je 0x4a06e7
mov eax, dword [0x8f29e4]
mov edi, dword [ebx + 0xe4]
sub eax, edi
mov ebp, dword [0x885b48]
sub ebp, edi
cmp eax, 0x3e8
jae 0x4a0638
cmp ebp, 0x3e8
jb 0x4a0638
cmp byte [ebx + 0xd8], 0
jne 0x4a0638
mov ecx, 0x6facf8
push 0
push 0
push 0
call fcn.0046fd00
mov ecx, 0x6facf8
push 0
push dword [0x5f6a64]
call fcn.0046b3a0
cmp ebp, 0x7d0
jbe 0x4a06e7
cmp byte [ebx + 0xd8], 0
jne 0x4a06b4
mov ecx, 0x6facf8
call fcn.0046fae0
mov ecx, 0x6facf8
push 0
push 0
push 0
call fcn.0046fd00
mov ecx, 0x6facf8
push 1
push dword [0x5f6a64]
call fcn.0046b3a0
mov ecx, 0x6facf8
call fcn.0046d3f0
call fcn.004ad480
push dword [0x6fad34]
push dword [0x6fad30]
push dword [0x6fad2c]
call fcn.005250d0
add esp, 0xc
call fcn.004aa240
push 0
call fcn.0040a440
pop ecx
call fcn.004acf70
mov byte [ebx + 0xe0], 0
movzx eax, byte [0x95cd61]
imul eax, eax, 0x4f
mov dword [eax*4 + 0x9412f4], 0
call fcn.004a10c0
test eax, eax
je 0x4a06e7
call fcn.004a10c0
mov dl, byte [eax + 0x50]
and dl, 7
mov byte [eax + 0x50], dl
mov eax, dword [0x9412ec]
and eax, 0x1f
jne 0x4a0862
call fcn.004a10c0
test eax, eax
je 0x4a07c0
mov eax, dword [ebx]
cmp byte [eax + 0x314], 0
je 0x4a07c0
call fcn.004a10c0
fld dword [eax + 0x2c]
fcomp dword [0x5f6a7c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4a07c0
call fcn.004a10c0
add eax, 0x78
fld dword [eax + 4]
fld st(0)
fmul st(0)
fld dword [eax]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [eax + 8]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst st(1)
fcomp dword [0x5f6a80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4a0920
fstp st(0)
call fcn.004a10c0
mov eax, dword [eax + 0x284]
test eax, eax
jne 0x4a07c0
call fcn.004a10c0
mov al, byte [eax + 0x122]
shr al, 3
and al, 1
jne 0x4a07c0
call fcn.004a10c0
fld dword [eax + 0x2c]
fcomp dword [0x5f6a84]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4a07b7
add dword [ebx + 0xf4], 2
jmp 0x4a07ca
inc dword [ebx + 0xf4]
jmp 0x4a07ca
mov dword [ebx + 0xf4], 0
cmp dword [ebx + 0xf4], 6
jbe 0x4a0862
call fcn.004a10c0
mov al, byte [eax + 0x1f7]
shr al, 6
and al, 1
je 0x4a0862
call fcn.004a10c0
fld dword [0x5f6a88]
fcomp dword [eax + 0x200]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4a0810
fld dword [0x5f6a88]
jmp 0x4a081b
call fcn.004a10c0
fld dword [eax + 0x200]
fstp dword [esp + 0x34]
call fcn.004a10c0
fld dword [esp + 0x34]
fstp dword [eax + 0x200]
call fcn.004a10c0
mov eax, dword [eax + 0x284]
test eax, eax
jne 0x4a0862
push 0xe1
call fcn.004a10c0
add eax, 0x288
mov ecx, eax
call fcn.00545940
call fcn.004a10c0
mov dword [eax + 0x574], 0
call fcn.004a10c0
test eax, eax
je 0x4a08c1
call fcn.004a10c0
xor ebp, ebp
mov byte [eax + 0x124], 0xff
lea eax, [eax]
call fcn.004a10c0
cmp dword [eax + ebp*4 + 0x1a8], 0
je 0x4a08a2
call fcn.004a10c0
mov eax, dword [eax + ebp*4 + 0x1a8]
mov byte [eax + 0x124], 0
inc ebp
cmp ebp, 8
jl 0x4a0880
call fcn.004a10c0
fld dword [0x940574]
fadd dword [eax + 0x108]
fstp dword [0x940574]
jmp 0x4a08d8
call fcn.004a1150
fld dword [0x941518]
fadd dword [eax + 0x108]
fstp dword [0x941518]
add esp, 0x70
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x4a04a7
fstp st(0)
jmp 0x4a055c
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a05dc
fstp st(0)
jmp 0x4a07c0