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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xac]
mov dword [esp + 0x58], 0
mov edi, dword [eax]
and edi, 0xffffffcf
mov dword [eax], edi
mov eax, edi
and eax, 7
cmp eax, 4
ja case.default.0x4a2c7e
jmp dword [eax*4 + 0x4d6de0]
push ebx
push ebx
lea eax, [esp + 0x8c]
push eax
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004a50b0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x20]
fstp qword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
lea ecx, [eax + edx - 1]
and ebx, 0xfffff
mov edx, ecx
or ebx, 0x3ff00000
mov dword [esp + 0x94], ecx
sar edx, 0x1f
mov dword [esp + 0x8c], ebx
fld qword [esp + 0x88]
fsub dword [0x4d6e0c]
push ecx
mov eax, edx
xor eax, ecx
fmul qword [0x4d6e10]
sub eax, edx
sub eax, 0x435
fadd qword [0x4d6e18]
fild dword [esp]
fmul qword [0x4d6e20]
add esp, 0x14
test eax, eax
faddp st(1)
jle 0x4a2d18
push eax
fild dword [esp]
fmul qword [0x4d6e28]
add esp, 4
faddp st(1)
fnstcw word [esp + 0x66]
mov ax, word [esp + 0x66]
mov ah, 0xc
mov word [esp + 0x64], ax
fldcw word [esp + 0x64]
fist dword [esp + 0x28]
fldcw word [esp + 0x66]
fldz
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x4a37d9
fstp st(0)
mov eax, ecx
mov dword [esp + 0x2c], 1
shl eax, 0x14
add eax, ebx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x28], 0x16
ja 0x4a2d84
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
fld qword [esp + 0x78]
fld qword [edx*8 + 0x4d6ee0]
fucompp
fnstsw ax
test ah, 0x45
jne 0x4a2d84
dec edx
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x10]
sub eax, ecx
dec eax
js 0x4a381f
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x28]
test eax, eax
js 0x4a37fe
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], 0
cmp dword [esp + 0xb0], 9
jbe 0x4a350f
mov dword [esp + 0xb0], 0
mov esi, 1
push ebp
xor ebx, ebx
fild dword [esp]
fmul qword [0x4d6e30]
add esp, 4
mov dword [esp + 0xb4], 0
mov dword [esp + 0x20], 0xffffffff
fldcw word [esp + 0x64]
fistp dword [esp + 0x60]
fldcw word [esp + 0x66]
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x60]
add eax, 3
mov dword [esp + 0x84], eax
sub esp, 0xc
mov ecx, dword [esp + 0x90]
push ecx
call fcn.004a4780
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x68], eax
mov ecx, dword [edx + 0xc]
dec ecx
mov dword [esp + 0x44], ecx
add esp, 0x10
cmp ecx, 0
je 0x4a2e76
jge 0x4a2e62
mov dword [esp + 0x34], 2
and edi, 8
je 0x4a2e76
mov edx, dword [esp + 0x34]
mov eax, 3
sub eax, edx
mov dword [esp + 0x34], eax
test bl, bl
je 0x4a2fe7
mov eax, esi
test al, al
je 0x4a2fe7
mov edx, dword [esp + 0x34]
or edx, dword [esp + 0x28]
jne 0x4a2fe7
fld qword [esp + 0x78]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], 0
fst qword [esp + 0x50]
test eax, eax
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
jle 0x4a3d28
mov eax, dword [esp + 0x28]
mov edi, 2
and eax, 0xf
fld qword [eax*8 + 0x4d6ee0]
mov eax, dword [esp + 0x28]
sar eax, 4
test al, 0x10
je 0x4a3b00
fxch st(1)
fdiv qword [0x4d6e80]
and eax, 0xf
mov di, 3
fst qword [esp + 0x78]
fstp qword [esp + 8]
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
fld qword [esp + 8]
test eax, eax
je 0x4a2f39
fstp st(0)
mov edx, 0x4d6e60
xor ecx, ecx
test al, 1
je 0x4a2f1e
fmul qword [edx]
inc edi
inc ecx
add edx, 8
sar eax, 1
jne 0x4a2f17
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x84], ecx
fld qword [esp + 8]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a389d
fld dword [0x4d6e38]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x4a389d
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4a389d
mov esi, dword [esp + 0x24]
test esi, esi
jle 0x4a3eff
fmul dword [0x4d6e3c]
mov esi, dword [esp + 0x28]
dec esi
inc edi
mov edx, dword [esp + 0x24]
fst qword [esp + 0x78]
lea ecx, [esp + 0x70]
push edi
fild dword [esp]
fmul st(1)
add esp, 4
fadd dword [0x4d6e40]
fstp qword [esp + 0x70]
mov ebx, dword [ecx + 4]
sub ebx, 0x3400000
test edx, edx
mov dword [ecx + 4], ebx
jne 0x4a3a1a
fstp st(1)
fsub dword [0x4d6e44]
fst qword [esp + 0x78]
fld qword [esp + 0x70]
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x4a3d1b
fxch st(1)
fchs
fucompp
fnstsw ax
test ah, 0x45
je 0x4a38ac
fld qword [esp + 0x50]
fstp qword [esp + 0x78]
mov eax, dword [esp + 0x5c]
test eax, eax
js 0x4a2ffa
cmp dword [esp + 0x28], 0xe
jle 0x4a3554
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4a3832
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], 0
test edi, edi
jle 0x4a3049
mov ebx, dword [esp + 0x38]
test ebx, ebx
jle 0x4a3049
mov eax, dword [esp + 0x38]
cmp eax, edi
jle 0x4a302c
mov eax, edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
sub ecx, eax
sub edx, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], ecx
sub edi, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4a309f
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a3b5b
test esi, esi
jle 0x4a3093
push eax
push eax
push esi
mov ebp, dword [esp + 0x54]
push ebp
call fcn.004a4fb0
mov dword [esp + 0x58], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x48]
push edx
push eax
call fcn.004a4d30
pop ebp
mov ecx, dword [esp + 0x4c]
mov ebx, eax
push ecx
call fcn.004a49e0
mov dword [esp + 0x50], ebx
add esp, 0x10
mov eax, dword [esp + 0x18]
sub eax, esi
jne 0x4a3c3f
sub esp, 0xc
push 1
call fcn.004a4ea0
mov dword [esp + 0x5c], eax
add esp, 0x10
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x4a30cc
push edx
push edx
mov ebp, dword [esp + 0x44]
push ebp
push eax
call fcn.004a4fb0
mov dword [esp + 0x5c], eax
add esp, 0x10
cmp dword [esp + 0xb0], 1
jle 0x4a361b
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
mov edx, 1
test ecx, ecx
jne 0x4a3a02
mov ecx, dword [esp + 0x38]
lea eax, [edx + ecx]
mov edx, 0x1c
and eax, 0x1f
je 0x4a37b7
mov dl, 0x20
sub edx, eax
mov dword [esp + 0x84], edx
cmp edx, 4
jle 0x4a37ae
lea eax, [edx - 4]
mov edx, dword [esp + 0x14]
add edx, eax
add ecx, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], edx
add edi, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x4a3152
push edx
push edx
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4c30
mov dword [esp + 0x50], eax
add esp, 0x10
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4a3172
push eax
push eax
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x58]
push eax
call fcn.004a4c30
mov dword [esp + 0x5c], eax
add esp, 0x10
mov ebp, dword [esp + 0x2c]
test ebp, ebp
jne 0x4a399c
mov ebp, dword [esp + 0x20]
test ebp, ebp
jle 0x4a3b78
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a38e0
test edi, edi
jle 0x4a31ae
push ebp
push ebp
push edi
mov esi, dword [esp + 0x54]
push esi
call fcn.004a4c30
mov dword [esp + 0x58], eax
add esp, 0x10
mov eax, dword [esp + 0x48]
test ebx, ebx
jne 0x4a3f2a
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x84], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x58]
push eax
push eax
mov eax, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4540
add eax, 0x30
mov dword [esp + 0x2c], eax
pop esi
pop ebp
mov ebp, 1
mov ebx, dword [esp + 0x4c]
push ebx
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004a4830
mov esi, eax
pop eax
pop edx
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x58]
push eax
call fcn.004a4ac0
mov ebx, eax
add esp, 0x10
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a36db
sub esp, 0xc
push ebx
call fcn.004a49e0
add esp, 0x10
mov eax, dword [esp + 0xb0]
or eax, ebp
jne 0x4a3253
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
and eax, 1
or eax, dword [esp + 0x34]
je 0x4a405e
test esi, esi
js 0x4a3ddb
or esi, dword [esp + 0xb0]
jne 0x4a3274
mov edx, dword [esp + 0xa8]
test byte [edx], 1
je 0x4a3ddb
test ebp, ebp
jle 0x4a3660
cmp dword [esp + 0x34], 2
je 0x4a3660
cmp dword [esp + 0x1c], 0x39
je 0x4a404a
mov al, byte [esp + 0x1c]
lea ebx, [edi + 1]
inc eax
mov esi, 0x20
mov byte [edi], al
sub esp, 0xc
mov eax, dword [esp + 0x58]
push eax
call fcn.004a49e0
add esp, 0x10
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a32eb
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a32db
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x44], ecx
je 0x4a32db
sub esp, 0xc
mov eax, dword [esp + 0x50]
push eax
call fcn.004a49e0
add esp, 0x10
sub esp, 0xc
mov ebp, dword [esp + 0x54]
push ebp
call fcn.004a49e0
add esp, 0x10
sub esp, 0xc
mov edi, dword [esp + 0x4c]
push edi
call fcn.004a49e0
mov byte [ebx], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xc8]
add esp, 0x10
inc eax
mov dword [edx], eax
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x4a3320
mov ecx, dword [esp + 0xbc]
mov dword [ecx], ebx
mov eax, dword [esp + 0xac]
mov edx, dword [eax]
or edx, esi
mov dword [eax], edx
lea esi, [esi]
mov eax, dword [esp + 0x58]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xa0]
xor edx, edx
mov ebp, dword [eax]
cmp ebp, 0x20
jle 0x4a335b
mov eax, 0x20
add eax, eax
inc edx
cmp ebp, eax
jg 0x4a3354
sub esp, 0xc
push edx
call fcn.004a4a20
mov dword [esp + 0x50], eax
lea eax, [ebp - 1]
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x50]
sar eax, 5
add esi, 0x14
mov ecx, esi
add esp, 0x10
lea ebx, [edx + eax*4]
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
cmp ebx, edx
jae 0x4a3384
mov edx, ecx
mov ecx, dword [esp + 0x40]
sub edx, esi
sar edx, 2
lea eax, [ecx + edx*4 + 0x14]
mov ecx, dword [eax - 4]
dec edx
test ecx, ecx
jne 0x4a34b4
sub eax, 4
test edx, edx
jne 0x4a33a1
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], 0
mov dword [eax + 0x10], 0
sub esp, 0xc
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a53c0
mov dword [esp + 0x94], eax
add esp, 0x10
test eax, eax
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x5c], edx
jne 0x4a34dc
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x4a2c85
sub esp, 0xc
push eax
call fcn.004a49e0
add esp, 0x10
mov edx, dword [esp + 0xb8]
mov dword [edx], 1
push edi
push 1
mov esi, dword [esp + 0xc4]
push esi
push 0x4d6ddd
call fcn.004a47c0
mov dword [esp + 0x68], eax
add esp, 0x10
mov eax, dword [esp + 0x58]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0xb8]
mov dword [ecx], 0xffff8000
push esi
push 3
mov ebx, dword [esp + 0xc4]
push ebx
push 0x4d6dd9
call fcn.004a47c0
mov dword [esp + 0x68], eax
add esp, 0x10
mov eax, dword [esp + 0x58]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0xb8]
mov dword [edx], 0xffff8000
push ebp
push 8
mov edi, dword [esp + 0xc4]
push edi
push str.Infinity
call fcn.004a47c0
mov dword [esp + 0x68], eax
add esp, 0x10
mov eax, dword [esp + 0x58]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x40]
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
shl eax, 5
mov dword [esp + 0x10], eax
bsr eax, dword [ecx + edx*4 + 0x14]
mov edx, dword [esp + 0x10]
xor eax, 0x1f
sub edx, eax
mov dword [esp + 0x10], edx
jmp 0x4a33c7
push esi
push esi
push eax
mov ebx, dword [esp + 0x4c]
push ebx
call fcn.004a52f0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xb4]
add ecx, eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x20], ecx
add esp, 0x10
jmp 0x4a33f1
cmp dword [esp + 0xb0], 5
jg 0x4a3601
mov eax, 1
mov esi, 1
cmp dword [esp + 0xb0], 5
jbe 0x4a36f2
mov bl, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], 1
jmp 0x4a2e2d
mov eax, dword [esp + 0x28]
fld qword [eax*8 + 0x4d6ee0]
mov eax, dword [esp + 0xb4]
test eax, eax
js 0x4a3be2
fnstcw word [esp + 0x66]
mov ax, word [esp + 0x66]
mov ah, 0xc
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x84], 1
mov word [esp + 0x64], ax
jmp 0x4a35b3
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x20], eax
je 0x4a3b07
fmul dword [0x4d6e3c]
inc eax
mov dword [esp + 0x84], eax
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fld st(0)
fdiv st(2)
fldcw word [esp + 0x64]
fistp dword [esp + 0x60]
fldcw word [esp + 0x66]
mov edx, dword [esp + 0x60]
push edx
fild dword [esp]
fmul st(2)
add esp, 4
lea eax, [edx + 0x30]
fsubp st(1)
fstp qword [esp + 0x78]
mov byte [ebx], al
inc ebx
fld qword [esp + 0x78]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
xor ah, 0x40
jne 0x4a3590
fstp st(0)
fstp st(0)
xor esi, esi
jmp 0x4a32eb
mov eax, dword [esp + 0xb0]
xor esi, esi
sub eax, 4
mov dword [esp + 0xb0], eax
xor eax, eax
jmp 0x4a3527
cmp dword [esp + 0x10], 1
jne 0x4a30da
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 4]
inc eax
cmp dword [esp + 0xa4], eax
jle 0x4a30da
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
inc ebx
inc esi
mov dword [esp + 0x38], ebx
mov ebx, 1
mov dword [esp + 0x14], esi
jmp 0x4a30dc
mov dl, byte [esp + 0x1c]
mov byte [edi], dl
inc edi
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x84], ecx
je 0x4a3949
push ebx
push 0
push 0xa
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004a4ec0
mov dword [esp + 0x50], eax
add esp, 0x10
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x44], eax
je 0x4a3793
push eax
push 0
push 0xa
mov ebp, dword [esp + 0x50]
push ebp
call fcn.004a4ec0
mov dword [esp + 0x54], eax
add esp, 0xc
push 0
push 0xa
mov esi, dword [esp + 0x54]
push esi
call fcn.004a4ec0
mov dword [esp + 0x58], eax
add esp, 0x10
mov ebx, dword [esp + 0x84]
inc ebx
mov dword [esp + 0x84], ebx
jmp 0x4a31d5
push ebp
push ebp
push ebx
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004a4830
add esp, 0x10
mov ebp, eax
jmp 0x4a3226
mov edx, dword [esp + 0xb0]
jmp dword [edx*4 + 0x4d6df4]
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xb4]
lea eax, [eax + edx + 1]
mov dword [esp + 0x20], eax
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x20]
dec eax
mov dword [esp + 0x24], eax
test ebx, ebx
jle 0x4a3edd
cmp dword [esp + 0x20], 0xe
setbe bl
jmp 0x4a2e2d
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0xb4]
test eax, eax
jle 0x4a3eed
mov ecx, dword [esp + 0xb4]
cmp ecx, 0xe
mov dword [esp + 0x84], ecx
setbe bl
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
jmp 0x4a2e2d
mov dword [esp + 0x30], 0
jmp 0x4a3708
mov dword [esp + 0x30], 0
jmp 0x4a3748
mov esi, eax
jmp 0x4a2de1
push edx
push 0
push 0xa
push eax
call fcn.004a4ec0
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
add esp, 0x10
jmp 0x4a36c7
je 0x4a3132
add edx, 0x1c
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
add ebp, edx
add esi, edx
add edi, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x38], esi
jmp 0x4a3132
fild dword [esp + 0x28]
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
mov edx, dword [esp + 0x28]
setne al
and eax, 0xff
sub edx, eax
mov dword [esp + 0x28], edx
jmp 0x4a2d45
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
sub eax, ecx
mov dword [esp + 0x3c], 0
neg ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jmp 0x4a2dc3
neg eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 0
jmp 0x4a2d9d
cmp dword [esp + 0xb0], 1
jle 0x4a3d90
mov eax, dword [esp + 0x20]
dec eax
cmp dword [esp + 0x18], eax
jl 0x4a3c1e
mov esi, dword [esp + 0x18]
sub esi, eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x84], eax
test eax, eax
js 0x4a3f08
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
add edx, eax
add ebp, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], ebp
sub esp, 0xc
push 1
call fcn.004a4ea0
mov dword [esp + 0x58], eax
add esp, 0x10
jmp 0x4a3016
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
jmp 0x4a2f84
fstp st(0)
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x58]
xor edx, 0xffffffff
mov esi, 0x10
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], 0
jmp 0x4a32a1
mov edi, dword [esp + 0x58]
mov dword [esp + 0x84], 1
jmp 0x4a3916
push eax
push 0
push 0xa
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4ec0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x94]
inc eax
mov dword [esp + 0x94], eax
add esp, 0x10
push ecx
push ecx
mov edx, dword [esp + 0x54]
push edx
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4540
add eax, 0x30
mov dword [esp + 0x2c], eax
add esp, 0x10
mov byte [edi], al
inc edi
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x84]
jg 0x4a38f1
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4a3e84
cmp dword [esp + 0x34], 2
je 0x4a3ebc
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x10], 1
jle 0x4a407c
dec edi
mov al, byte [edi]
cmp al, 0x39
jne 0x4a3f1a
cmp edi, dword [esp + 0x58]
jne 0x4a396e
mov eax, dword [esp + 0x28]
mov esi, 0x20
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
mov ebx, eax
inc ebx
mov byte [eax], 0x31
jmp 0x4a32a1
push esi
push esi
mov ecx, dword [esp + 0x54]
push ecx
mov edx, dword [esp + 0x4c]
push edx
call fcn.004a4830
add esp, 0x10
test eax, eax
jns 0x4a317e
push eax
push 0
push 0xa
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4ec0
mov dword [esp + 0x50], eax
add esp, 0x10
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a39ec
push eax
push 0
push 0xa
mov eax, dword [esp + 0x54]
push eax
call fcn.004a4ec0
mov dword [esp + 0x58], eax
add esp, 0x10
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
jmp 0x4a317e
mov ecx, dword [esp + 0x4c]
mov dl, 0x20
mov eax, dword [ecx + 0x10]
bsr eax, dword [ecx + eax*4 + 0x10]
xor eax, 0x1f
sub edx, eax
jmp 0x4a30ed
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a3c58
fstp st(0)
fld st(0)
fnstcw word [esp + 0x66]
fmul dword [0x4d6e48]
mov ax, word [esp + 0x66]
mov ah, 0xc
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x84], 0
mov word [esp + 0x64], ax
fdiv qword [edx*8 + 0x4d6ed8]
fsub qword [esp + 0x70]
fstp qword [esp + 0x70]
jmp 0x4a3a9e
fld st(2)
fsub st(2)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x4a3d81
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp edx, eax
jle 0x4a3efd
fld dword [0x4d6e3c]
fmul st(1), st(0)
fxch st(1)
fstp qword [ecx]
fmulp st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fld st(0)
fdiv st(2)
fldcw word [esp + 0x64]
fistp dword [esp + 0x60]
fldcw word [esp + 0x66]
mov eax, dword [esp + 0x60]
push eax
add eax, 0x30
fild dword [esp]
fmul st(2)
add esp, 4
fsubp st(1)
fstp qword [esp + 0x78]
mov byte [ebx], al
inc ebx
fld qword [esp + 0x78]
fld qword [ecx]
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x4a3a60
fstp st(0)
fstp st(1)
fldz
fxch st(1)
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
je 0x4a4053
mov dword [esp + 0x28], esi
mov esi, 0x10
jmp 0x4a32eb
fstp st(1)
jmp 0x4a2efe
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4a3d4c
fstp st(0)
fstp st(0)
cmp dword [esp + 0x34], 1
je 0x4a3b2c
mov esi, 0x10
jmp 0x4a32eb
fstp st(0)
fstp st(0)
dec ebx
mov al, byte [ebx]
cmp al, 0x39
jne 0x4a3b4d
cmp ebx, dword [esp + 0x58]
jne 0x4a3b2c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
inc eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov byte [edx], 0x30
mov al, 0x30
inc eax
mov esi, 0x20
mov byte [ebx], al
inc ebx
jmp 0x4a32eb
push ebp
push ebp
mov esi, dword [esp + 0x20]
push esi
mov ebx, dword [esp + 0x4c]
push ebx
call fcn.004a4fb0
mov dword [esp + 0x50], eax
add esp, 0x10
jmp 0x4a309f
cmp dword [esp + 0xb0], 2
jle 0x4a318a
mov edi, dword [esp + 0x20]
test edi, edi
js 0x4a38bc
push esi
push 0
push 5
mov ebx, dword [esp + 0x58]
push ebx
call fcn.004a4ec0
mov dword [esp + 0x5c], eax
pop edx
pop ecx
push eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4830
add esp, 0x10
test eax, eax
jle 0x4a38bc
mov ecx, dword [esp + 0x58]
mov esi, 0x20
mov ebx, ecx
mov byte [ecx], 0x31
inc ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], 0
inc eax
mov dword [esp + 0x28], eax
jmp 0x4a32a1
cmp dword [esp + 0x20], 0
jg 0x4a356e
jl 0x4a38aa
fmul dword [0x4d6e44]
fld qword [esp + 0x78]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
je 0x4a38ac
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x4a3bbd
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
sub eax, esi
mov ecx, dword [esp + 0x18]
add ebx, eax
add ecx, eax
xor esi, esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ecx
jmp 0x4a3855
push edx
push edx
push eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.004a4fb0
mov dword [esp + 0x50], eax
add esp, 0x10
jmp 0x4a309f
fld qword [esp + 0x70]
fnstcw word [esp + 0x66]
fmul qword [edx*8 + 0x4d6ed8]
mov ax, word [esp + 0x66]
mov ah, 0xc
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x84], 1
mov word [esp + 0x64], ax
fstp qword [esp + 0x70]
jmp 0x4a3cbe
push eax
fild dword [esp]
fmul st(2)
add esp, 4
fsubp st(1)
fstp qword [esp + 0x78]
add eax, 0x30
mov byte [ebx], al
inc ebx
mov eax, dword [esp + 0x84]
cmp eax, edx
je 0x4a3cda
fld dword [0x4d6e3c]
fmul qword [esp + 0x78]
inc eax
mov dword [esp + 0x84], eax
fst qword [esp + 0x78]
fld st(0)
fdiv st(2)
fldcw word [esp + 0x64]
fistp dword [esp + 0x60]
fldcw word [esp + 0x66]
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x4a3c88
fstp st(0)
jmp 0x4a3c97
fmul dword [0x4d6e48]
fld qword [esp + 0x78]
fld qword [ecx]
fld st(0)
fadd st(3)
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
test ah, 0x45
je 0x4a3d81
fsubp st(2)
fxch st(1)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x4a3d0f
fstp st(0)
jmp 0x4a2fdf
dec ebx
cmp byte [ebx], 0x30
je 0x4a3d0f
inc ebx
jmp 0x4a3ade
fstp st(0)
fstp st(0)
mov dword [esp + 0x28], esi
jmp 0x4a3c0c
fstp st(0)
mov edx, dword [esp + 0x28]
neg edx
jne 0x4a3f66
fld qword [esp + 0x50]
mov edi, 2
fld dword [0x4d6e38]
fxch st(1)
jmp 0x4a2f39
fld st(0)
faddp st(1)
fst qword [esp + 0x78]
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x4a3b28
fxch st(1)
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
jne 0x4a3b1e
and edx, 1
jne 0x4a3b2c
jmp 0x4a3b1e
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x28], esi
jmp 0x4a3b2c
mov eax, ebp
mov ebp, dword [esp + 0x10]
sub eax, ebp
mov edx, dword [esp + 0xa0]
mov ecx, dword [edx + 4]
lea edx, [eax + 1]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x5c]
sub edx, eax
cmp edx, ecx
jge 0x4a3dce
mov edi, dword [esp + 0x5c]
sub edi, ecx
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jmp 0x4a386c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4a3fcd
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x10], 1
jle 0x4a3fc2
cmp dword [esp + 0x34], 2
jne 0x4a3e42
mov esi, 0x10
mov al, byte [esp + 0x1c]
lea ebx, [edi + 1]
mov byte [edi], al
jmp 0x4a32a1
mov dword [esp + 0x44], eax
push eax
push 0
push 0xa
inc edi
mov ebp, dword [esp + 0x4c]
push ebp
call fcn.004a4ec0
mov dword [esp + 0x50], eax
pop ecx
pop esi
mov edx, dword [esp + 0x54]
push edx
push eax
call fcn.004a4540
mov dword [esp + 0x58], ebx
add eax, 0x30
mov dword [esp + 0x2c], eax
add esp, 0x10
push eax
push eax
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x58]
push eax
call fcn.004a4830
add esp, 0x10
test eax, eax
jle 0x4a4031
mov al, byte [esp + 0x1c]
mov byte [edi], al
push eax
push 0
push 0xa
mov eax, dword [esp + 0x54]
push eax
call fcn.004a4ec0
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x44], edx
jne 0x4a3e13
jmp 0x4a3e0f
push ebp
push ebp
push 1
mov esi, dword [esp + 0x4c]
push esi
call fcn.004a4c30
mov dword [esp + 0x50], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x54]
push edx
push eax
call fcn.004a4830
add esp, 0x10
cmp eax, 0
jg 0x4a396e
jne 0x4a3ebc
test byte [esp + 0x1c], 1
jne 0x4a396e
mov edx, dword [esp + 0x40]
cmp dword [edx + 0x10], 1
jle 0x4a408e
mov esi, 0x10
dec edi
cmp byte [edi], 0x30
je 0x4a3ecf
lea ebx, [edi + 1]
jmp 0x4a32a1
mov dword [esp + 0x84], 1
jmp 0x4a3733
mov dword [esp + 0xb4], 1
jmp 0x4a3757
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4a2fdf
sub edi, eax
mov dword [esp + 0x84], 0
jmp 0x4a386c
inc eax
lea ebx, [edi + 1]
mov esi, 0x20
mov byte [edi], al
jmp 0x4a32a1
sub esp, 0xc
mov eax, dword [esp + 0x54]
mov ebx, dword [eax + 4]
push ebx
call fcn.004a4a20
mov edx, dword [esp + 0x58]
cld
mov ecx, dword [edx + 0x10]
lea edi, [eax + 0xc]
lea esi, [edx + 0xc]
lea ecx, [ecx*4 + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop edx
pop ecx
push 1
push eax
call fcn.004a4c30
add esp, 0x10
jmp 0x4a31ba
mov eax, edx
and eax, 0xf
fld qword [esp + 0x50]
fmul qword [eax*8 + 0x4d6ee0]
mov eax, edx
sar eax, 4
fst qword [esp + 0x78]
je 0x4a40b6
fstp st(0)
mov edx, 0x4d6e60
mov edi, 2
xor ecx, ecx
test al, 1
je 0x4a3fa2
fld qword [esp + 0x78]
fmul qword [edx]
inc edi
fstp qword [esp + 0x78]
inc ecx
add edx, 8
sar eax, 1
jne 0x4a3f93
fld qword [esp + 0x78]
fld dword [0x4d6e38]
fxch st(1)
mov dword [esp + 0x84], ecx
jmp 0x4a2f39
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x4a3df5
xor esi, esi
test ebp, ebp
jle 0x4a4013
push ebp
push ebp
push 1
mov esi, dword [esp + 0x4c]
push esi
call fcn.004a4c30
mov dword [esp + 0x50], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x54]
push edx
push eax
call fcn.004a4830
add esp, 0x10
cmp eax, 0
jle 0x4a40a0
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0x3a
je 0x4a404a
mov esi, 0x20
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x10], 1
jg 0x4a3dfc
mov ebp, dword [ecx + 0x14]
test ebp, ebp
je 0x4a3e01
jmp 0x4a3dfc
mov eax, dword [esp + 0x1c]
mov esi, 0x20
inc eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0x3a
jne 0x4a3e01
mov byte [edi], 0x39
inc edi
jmp 0x4a396e
mov dword [esp + 0x28], esi
xor esi, esi
jmp 0x4a32eb
cmp dword [esp + 0x1c], 0x39
je 0x4a404a
test esi, esi
jle 0x4a40c8
mov eax, dword [esp + 0x1c]
mov esi, 0x20
inc eax
mov dword [esp + 0x1c], eax
jmp 0x4a3e01
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x4a396e
xor esi, esi
jmp 0x4a3ecf
mov eax, dword [edx + 0x14]
test eax, eax
jne 0x4a3eca
xor esi, esi
jmp 0x4a3ecf
jne 0x4a400e
test byte [esp + 0x1c], 1
je 0x4a400e
jmp 0x4a3ffe
mov edi, 2
fld dword [0x4d6e38]
fxch st(1)
jmp 0x4a2f39
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x10], 1
jg 0x4a3dfc
mov edx, dword [ecx + 0x14]
xor esi, esi
test edx, edx
je 0x4a3e01
jmp 0x4a3dfc