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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x3c], edi
call fcn.004942b0
mov ecx, edi
mov esi, eax
call fcn.004942c0
test esi, esi
je 0x4931f2
test eax, eax
je 0x4931f2
mov esi, dword [esi + 0x78]
mov ebx, dword [ebp + 8]
movzx edi, word [esi + 0xe]
mov ecx, dword [ebx]
mov eax, dword [eax + 0x78]
mov edx, dword [ecx + 0x2c]
push ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], eax
shr edi, 3
call edx
movzx ecx, word [esi + 2]
imul ecx, edi
cdq
idiv ecx
mov edx, dword [esp + 0x38]
mov ecx, eax
mov eax, dword [edx + 4]
imul eax, ecx
xor edx, edx
div dword [esi + 4]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x74]
push edx
push ebx
mov dword [esp + 0x58], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
call eax
test eax, eax
jl 0x491c49
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 0x738]
add dword [esp + 0x70], eax
mov ecx, dword [esi + 0x73c]
lea edx, [esp + 0x78]
adc dword [esp + 0x74], ecx
add dword [esp + 0x78], eax
mov eax, dword [ebp + 0xc]
push edx
adc dword [esp + 0x80], ecx
mov ecx, dword [eax]
lea edx, [esp + 0x74]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
lea ebx, [esi + 0x760]
mov dword [ebx], ecx
mov ecx, dword [esp + 0x7c]
add esi, 0x768
mov dword [ebx + 4], edx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x491c66
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
lea esi, [ebx + 0x768]
push esi
add ebx, 0x760
push ebx
push eax
mov eax, dword [edx + 0x18]
call eax
mov eax, dword [esp + 0x48]
push 0
cdq
push 0x989680
push edx
push eax
call fcn.00473670
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
push 0
push ecx
push edx
push eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
call fcn.004735c0
add dword [ebx], eax
mov ecx, dword [esp + 0x6c]
push 0
adc dword [ebx + 4], edx
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x6c]
push eax
push ecx
push edx
call fcn.004735c0
add dword [esi], eax
mov eax, dword [ebp + 8]
push eax
adc dword [esi + 4], edx
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
call edx
test eax, eax
jne 0x491cd4
fld qword [0x59d2e8]
mov eax, dword [esp + 0x3c]
fstp qword [eax + 0x750]
mov ebx, dword [esp + 0x34]
movzx esi, word [ebx]
cmp si, 1
je 0x491d04
cmp si, 0xfffe
jne 0x491cfd
lea ecx, [ebx + 0x18]
push 0x59d338
push ecx
call fcn.00409f40
add esp, 8
test eax, eax
jne 0x491d04
mov byte [esp + 0x22], 0
jmp 0x491d09
mov byte [esp + 0x22], 1
cmp si, 3
je 0x491d32
cmp si, 0xfffe
jne 0x491d2b
lea edx, [ebx + 0x18]
push 0x59d328
push edx
call fcn.00409f40
add esp, 8
test eax, eax
jne 0x491d32
mov byte [esp + 0x23], 0
jmp 0x491d37
mov byte [esp + 0x23], 1
cmp byte [esp + 0x22], 0
jne 0x491d5f
cmp byte [esp + 0x23], 0
jne 0x491d5f
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [esp + 0x44]
call fcn.004942d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x24]
push ecx
xor esi, esi
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], esi
call edx
cmp eax, esi
jl 0x493201
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x30]
push ecx
push esi
call edx
test eax, eax
jl 0x493201
cmp dword [esp + 0x24], 0
je 0x4931e4
cmp dword [esp + 0x30], 0
je 0x4931e4
cmp dword [esp + 0x48], 0
jle 0x4931e4
cmp dword [esp + 0x4c], 0
jle 0x4931e4
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
push esi
call ecx
mov edx, dword [esp + 0x30]
push eax
push 0
push edx
call fcn.004727f0
mov eax, dword [esp + 0x48]
add esp, 0xc
cmp byte [eax + 0x21c], 0
je 0x492c13
movzx eax, word [ebx + 2]
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
cmp dword [edx + ecx*4 + 0xa8], 0
mov dword [esp + 0x44], 0
jle 0x492bd9
mov eax, dword [esp + 0x38]
cmp word [eax + 2], 0
jbe 0x492c27
mov edi, edi
movzx eax, word [ebx + 2]
mov ecx, dword [esp + 0x44]
add eax, 8
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
push ecx
lea ecx, [eax + edx*4]
call fcn.0044caf0
mov ecx, dword [eax + 4]
xor esi, esi
cmp dword [esp + 0x48], esi
mov dword [esp + 0x28], ecx
jle 0x492bb9
fld1
fld qword [0x5982c8]
fldz
cmp byte [esp + 0x22], 0
je 0x492768
movzx eax, word [ebx + 0xe]
cmp ax, 8
jne 0x492077
mov eax, dword [esp + 0x34]
movzx ebx, word [eax + 2]
xor edx, edx
mov eax, 2
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], eax
jmp 0x491e92
mov edx, dword [esp + 0x58]
lea ecx, [eax - 2]
cmp ecx, ebx
jge 0x49202e
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x491ed2
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
add edx, eax
mov eax, dword [esp + 0x24]
imul edx, edi
movzx eax, byte [edx + eax]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
lea ecx, [eax - 1]
cmp ecx, ebx
jge 0x49202a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x491f14
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 1]
imul eax, edi
movzx eax, byte [eax + ecx]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
cmp eax, ebx
jge 0x49202a
mov ecx, eax
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x491f55
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 2]
imul eax, edi
movzx eax, byte [eax + ecx]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
lea ecx, [eax + 1]
cmp ecx, ebx
jge 0x49202a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x491f97
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 3]
imul eax, edi
movzx eax, byte [eax + ecx]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
lea ecx, [eax + 2]
cmp ecx, ebx
jge 0x49202a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x491fd9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 4]
imul eax, edi
movzx eax, byte [eax + ecx]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
lea ecx, [eax + 3]
cmp ecx, ebx
jge 0x49202a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492017
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 5]
imul eax, edi
movzx eax, byte [eax + ecx]
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], edx
add eax, 6
lea edx, [eax - 2]
cmp edx, 0x12
mov dword [esp + 0x40], eax
jl 0x491e8e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
xor ecx, ecx
cmp eax, ecx
jl 0x492073
jg 0x49203e
cmp edx, ecx
jbe 0x492073
cmp eax, ecx
jg 0x49204c
jl 0x492055
cmp edx, 0xff
jb 0x492055
mov edx, 0xff
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x38]
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x30]
imul ecx, esi
add ecx, dword [esp + 0x44]
imul ecx, edi
mov byte [ecx + eax], dl
jmp 0x492ba2
xor edx, edx
jmp 0x492051
cmp ax, 0x10
jne 0x49229a
mov ecx, dword [esp + 0x34]
movzx ebx, word [ecx + 2]
xor edx, edx
mov eax, 2
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x40], eax
jmp 0x4920a2
mov edx, dword [esp + 0x60]
lea ecx, [eax - 2]
cmp ecx, ebx
jge 0x49223e
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4920e2
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
add edx, eax
mov eax, dword [esp + 0x24]
imul edx, edi
movsx eax, word [edx + eax]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
lea ecx, [eax - 1]
cmp ecx, ebx
jge 0x49223a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492124
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 1]
imul eax, edi
movsx eax, word [eax + ecx]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
cmp eax, ebx
jge 0x49223a
mov ecx, eax
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492165
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 2]
imul eax, edi
movsx eax, word [eax + ecx]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
lea ecx, [eax + 1]
cmp ecx, ebx
jge 0x49223a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4921a7
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 3]
imul eax, edi
movsx eax, word [eax + ecx]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
lea ecx, [eax + 2]
cmp ecx, ebx
jge 0x49223a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4921e9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 4]
imul eax, edi
movsx eax, word [eax + ecx]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
lea ecx, [eax + 3]
cmp ecx, ebx
jge 0x49223a
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492227
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 5]
imul eax, edi
movsx eax, word [eax + ecx]
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x64], edx
add eax, 6
lea edx, [eax - 2]
cmp edx, 0x12
mov dword [esp + 0x40], eax
jl 0x49209e
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jl 0x49228b
jg 0x492251
cmp edx, 0xffff8000
jbe 0x49228b
test eax, eax
jg 0x49225f
jl 0x49226c
cmp edx, 0x7fff
jb 0x49226c
mov edx, 0x7fff
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x38]
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x30]
imul ecx, esi
add ecx, dword [esp + 0x44]
imul ecx, edi
mov word [ecx + eax], dx
jmp 0x492ba2
mov edx, 0xffff8000
mov dword [esp + 0x64], 0xffffffff
jmp 0x49226c
cmp ax, 0x18
jne 0x49254c
mov ecx, dword [esp + 0x34]
movzx ebx, word [ecx + 2]
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 2
mov dword [esp + 0x40], eax
lea ecx, [eax - 2]
cmp ecx, ebx
jge 0x4924db
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492315
mov ecx, dword [esp + 0x40]
mov eax, ebx
imul eax, esi
add ecx, 0xfffffffe
add eax, ecx
imul eax, edi
add eax, dword [esp + 0x24]
mov dx, word [eax]
mov al, byte [eax + 2]
mov byte [esp + 0x2f], al
mov word [esp + 0x2d], dx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
lea ecx, [eax - 1]
cmp ecx, ebx
jge 0x4924db
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x49236d
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 1]
imul eax, edi
add eax, dword [esp + 0x24]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov byte [esp + 0x2f], dl
mov word [esp + 0x2d], cx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
cmp eax, ebx
jge 0x4924db
mov ecx, eax
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4923c4
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 2]
imul eax, edi
add eax, dword [esp + 0x24]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov byte [esp + 0x2f], dl
mov word [esp + 0x2d], cx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
lea ecx, [eax + 1]
cmp ecx, ebx
jge 0x4924db
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x49241c
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 3]
imul eax, edi
add eax, dword [esp + 0x24]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov byte [esp + 0x2f], dl
mov word [esp + 0x2d], cx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
lea ecx, [eax + 2]
cmp ecx, ebx
jge 0x4924db
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492474
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 4]
imul eax, edi
add eax, dword [esp + 0x24]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov byte [esp + 0x2f], dl
mov word [esp + 0x2d], cx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
lea ecx, [eax + 3]
cmp ecx, ebx
jge 0x4924db
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4924c8
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 5]
imul eax, edi
add eax, dword [esp + 0x24]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov byte [esp + 0x2f], dl
mov word [esp + 0x2d], cx
mov eax, dword [esp + 0x2c]
sar eax, 8
mov dword [esp + 0x2c], eax
cdq
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], edx
add eax, 6
lea ecx, [eax - 2]
cmp ecx, 0x12
mov dword [esp + 0x40], eax
jl 0x4922bf
mov eax, dword [esp + 0x54]
cmp eax, 0xffffffff
jl 0x49253a
jg 0x4924f0
cmp dword [esp + 0x50], 0xff000000
jbe 0x49253a
test eax, eax
jg 0x492500
jl 0x492510
cmp dword [esp + 0x50], 0xffffff
jb 0x492510
mov dword [esp + 0x50], 0xffffff
mov dword [esp + 0x54], 0
mov edx, dword [esp + 0x38]
movzx eax, word [edx + 2]
mov cx, word [esp + 0x50]
imul eax, esi
add eax, dword [esp + 0x44]
mov dl, byte [esp + 0x52]
imul eax, edi
add eax, dword [esp + 0x30]
mov word [eax], cx
mov byte [eax + 2], dl
jmp 0x492ba2
mov dword [esp + 0x50], 0xff000000
mov dword [esp + 0x54], 0xffffffff
jmp 0x492510
cmp ax, 0x20
jne 0x492768
mov eax, dword [esp + 0x34]
movzx ebx, word [eax + 2]
xor edx, edx
mov eax, 2
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x40], eax
jmp 0x492577
mov edx, dword [esp + 0x68]
lea ecx, [eax - 2]
cmp ecx, ebx
jge 0x49270d
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4925b6
mov eax, dword [esp + 0x40]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
add edx, eax
mov eax, dword [esp + 0x24]
imul edx, edi
mov eax, dword [edx + eax]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
lea ecx, [eax - 1]
cmp ecx, ebx
jge 0x492709
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4925f7
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 1]
imul eax, edi
mov eax, dword [eax + ecx]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
cmp eax, ebx
jge 0x492709
mov ecx, eax
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492637
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 2]
imul eax, edi
mov eax, dword [eax + ecx]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
lea ecx, [eax + 1]
cmp ecx, ebx
jge 0x492709
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x492678
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 3]
imul eax, edi
mov eax, dword [eax + ecx]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
lea ecx, [eax + 2]
cmp ecx, ebx
jge 0x492709
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4926b9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 4]
imul eax, edi
mov eax, dword [eax + ecx]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
lea ecx, [eax + 3]
cmp ecx, ebx
jge 0x492709
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test ecx, edx
je 0x4926f6
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, ebx
imul edx, esi
add eax, 0xfffffffe
lea eax, [edx + eax + 5]
imul eax, edi
mov eax, dword [eax + ecx]
cdq
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x6c], edx
add eax, 6
lea edx, [eax - 2]
cmp edx, 0x12
mov dword [esp + 0x40], eax
jl 0x492573
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp eax, 0xffffffff
jl 0x492759
jg 0x492720
cmp edx, 0x80000000
jbe 0x492759
test eax, eax
jg 0x49272e
jl 0x49273b
cmp edx, 0x7fffffff
jb 0x49273b
mov edx, SysReAllocString
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x38]
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x30]
imul ecx, esi
add ecx, dword [esp + 0x44]
imul ecx, edi
mov dword [ecx + eax], edx
jmp 0x492ba2
mov edx, SysReAllocString
mov dword [esp + 0x6c], 0xffffffff
jmp 0x49273b
cmp byte [esp + 0x23], 0
je 0x492ba6
movzx eax, word [ebx + 0xe]
cmp ax, 0x20
jne 0x49299c
movzx eax, word [ebx + 2]
fld st(0)
mov edx, 2
mov dword [esp + 0x40], edx
add edx, 0xfffffffe
cmp edx, eax
jge 0x492951
mov ecx, edx
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x4927bd
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
add ecx, edx
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 0xffffffff
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x4927ee
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 1]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x49281c
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 2]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 1
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x49284d
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 3]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 2
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x49287e
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 4]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 3
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x4928af
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 5]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 4
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x4928e0
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 6]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 5
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x49290d
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 7]
imul ecx, edi
fadd dword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 6
cmp ecx, eax
jge 0x492951
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x28]
test ecx, ebx
je 0x49293a
mov ecx, eax
imul ecx, esi
lea edx, [ecx + edx + 8]
mov ecx, dword [esp + 0x24]
imul edx, edi
fadd dword [edx + ecx]
mov edx, dword [esp + 0x40]
add edx, 9
lea ecx, [edx - 2]
cmp ecx, 0x12
mov dword [esp + 0x40], edx
jl 0x492790
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x492963
fcom st(3)
fnstsw ax
test ah, 5
jp 0x492972
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x492976
fstp st(0)
fld st(1)
jmp 0x492976
fstp st(0)
fld st(2)
mov edx, dword [esp + 0x38]
fstp dword [esp + 0x40]
movzx eax, word [edx + 2]
fld dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
imul eax, esi
add eax, dword [esp + 0x44]
imul eax, edi
fstp dword [eax + ecx]
jmp 0x492ba2
cmp ax, 0x40
jne 0x492ba6
movzx eax, word [ebx + 2]
fld st(0)
mov edx, 2
mov dword [esp + 0x40], edx
add edx, 0xfffffffe
cmp edx, eax
jge 0x492b64
mov ebx, 1
mov ecx, edx
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x4929e0
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
add ecx, edx
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 0xffffffff
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492a0f
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 1]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492a3b
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 2]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 1
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492a6a
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 3]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 2
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492a99
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 4]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 3
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492ac8
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 5]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 4
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492af7
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 6]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 5
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492b22
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, esi
lea ecx, [ecx + edx + 7]
imul ecx, edi
fadd qword [ecx + ebx]
mov ecx, dword [esp + 0x40]
add ecx, 6
cmp ecx, eax
jge 0x492b64
mov ebx, 1
shl ebx, cl
test dword [esp + 0x28], ebx
je 0x492b4d
mov ecx, eax
imul ecx, esi
lea edx, [ecx + edx + 8]
mov ecx, dword [esp + 0x24]
imul edx, edi
fadd qword [edx + ecx]
mov edx, dword [esp + 0x40]
add edx, 9
lea ecx, [edx - 2]
cmp ecx, 0x12
mov dword [esp + 0x40], edx
jl 0x4929b5
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x492b76
fcom st(3)
fnstsw ax
test ah, 5
jp 0x492b85
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x492b89
fstp st(0)
fld st(1)
jmp 0x492b89
fstp st(0)
fld st(2)
mov edx, dword [esp + 0x38]
movzx eax, word [edx + 2]
mov ecx, dword [esp + 0x30]
imul eax, esi
add eax, dword [esp + 0x44]
imul eax, edi
fstp qword [eax + ecx]
mov ebx, dword [esp + 0x34]
add esi, 1
cmp esi, dword [esp + 0x48]
jl 0x491e58
fstp st(1)
fstp st(1)
fstp st(0)
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
movzx ecx, word [edx + 2]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x491e20
mov esi, dword [ebp + 0xc]
jmp 0x492c27
mov edx, dword [esi]
mov ecx, dword [edx + 0xc]
lea eax, [esp + 0x44]
push eax
push esi
call ecx
test eax, eax
jl 0x493201
cmp dword [esp + 0x44], 0
je 0x493201
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push esi
call eax
mov ecx, dword [esp + 0x44]
push eax
push 0
push ecx
call fcn.004727f0
add esp, 0xc
jmp 0x492c27
mov edx, dword [ebp + 8]
push esi
push edx
mov ecx, eax
call fcn.004942d0
test eax, eax
jne 0x493201
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x730], 0
je 0x492d87
mov eax, 0xac44
cmp dword [ebx + 4], eax
jbe 0x492d87
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], eax
jne 0x492d87
cmp word [ebx + 0xe], 0x10
ja 0x492d87
cmp byte [esp + 0x22], 0
je 0x492d87
mov eax, dword [esp + 0x48]
imul eax, edi
push eax
mov dword [esp + 0x30], eax
call fcn.0044ff68
add esp, 4
test eax, eax
mov dword [esp + 0x44], eax
je 0x492d87
mov edx, dword [esp + 0x38]
xor ebx, ebx
cmp word [edx + 2], bx
jbe 0x492d73
lea esp, [esp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
push eax
push 0
push ecx
call fcn.004727f0
xor esi, esi
add esp, 0xc
cmp dword [esp + 0x48], esi
jle 0x492cf4
mov edx, dword [esp + 0x44]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x38]
movzx ecx, word [eax + 2]
mov edx, dword [esp + 0x40]
imul ecx, esi
add ecx, ebx
imul ecx, edi
add ecx, dword [esp + 0x30]
push edi
push ecx
push edx
call fcn.00473850
add dword [esp + 0x4c], edi
add esi, 1
add esp, 0xc
cmp esi, dword [esp + 0x48]
jl 0x492cc4
mov ecx, dword [esp + 0x3c]
push ebx
add ecx, 0x740
call fcn.00491740
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x48]
push ecx
push edx
push ecx
mov ecx, dword [eax]
call fcn.00498a90
xor esi, esi
cmp dword [esp + 0x4c], esi
jle 0x492d60
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], eax
jmp 0x492d30
mov edx, dword [esp + 0x38]
movzx eax, word [edx + 2]
mov ecx, dword [esp + 0x40]
imul eax, esi
add eax, ebx
imul eax, edi
add eax, dword [esp + 0x30]
push edi
push ecx
push eax
call fcn.00473850
add dword [esp + 0x4c], edi
add esi, 1
add esp, 0xc
cmp esi, dword [esp + 0x4c]
jl 0x492d30
mov ecx, dword [esp + 0x38]
movzx edx, word [ecx + 2]
add ebx, 1
cmp ebx, edx
jl 0x492ca0
mov eax, dword [esp + 0x44]
push eax
call fcn.0044ff63
mov ebx, dword [esp + 0x38]
mov esi, dword [ebp + 0xc]
add esp, 4
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x758], 0
jne 0x492da7
fld1
fcomp dword [eax + 0x75c]
fnstsw ax
test ah, 5
jp 0x4931c0
mov ecx, dword [esp + 0x38]
movzx esi, word [ecx + 2]
imul esi, dword [esp + 0x4c]
xor ecx, ecx
mov eax, esi
mov edx, 8
mul edx
seto cl
mov dword [esp + 0x48], esi
neg ecx
or ecx, eax
push ecx
call fcn.0044ff68
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x44], esi
je 0x4931bd
xor eax, eax
cmp dword [esp + 0x48], eax
jle 0x492ed6
fld qword [0x59d320]
xor edx, edx
fld qword [0x59d318]
mov dword [esp + 0x2c], edx
fld qword [0x59d310]
fld qword [0x59d308]
cmp byte [esp + 0x22], 0
je 0x492e90
movzx ecx, word [ebx + 0xe]
cmp cx, 8
jne 0x492e33
mov ecx, dword [esp + 0x30]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fdiv st(4)
jmp 0x492eb7
cmp cx, 0x10
jne 0x492e4d
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + eax*2]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fdiv st(3)
jmp 0x492eb7
cmp cx, 0x18
jne 0x492e7f
mov ecx, dword [esp + 0x30]
mov dx, word [edx + ecx]
mov word [esp + 0x41], dx
mov edx, dword [esp + 0x2c]
mov cl, byte [edx + ecx + 2]
mov byte [esp + 0x43], cl
mov ecx, dword [esp + 0x40]
sar ecx, 8
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fdiv st(2)
jmp 0x492eb7
cmp cx, 0x20
jne 0x492e90
mov ecx, dword [esp + 0x30]
fild dword [ecx + eax*4]
fdiv st(1)
jmp 0x492eb7
cmp byte [esp + 0x23], 0
je 0x492eba
movzx ecx, word [ebx + 0xe]
cmp cx, 0x20
jne 0x492eaa
mov ecx, dword [esp + 0x30]
fld dword [ecx + eax*4]
jmp 0x492eb7
cmp cx, 0x40
jne 0x492eba
mov ecx, dword [esp + 0x30]
fld qword [ecx + eax*8]
fstp qword [esi + eax*8]
add eax, 1
add edx, 3
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
jl 0x492e0b
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
fld1
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + 0x758], 0
fst qword [esp + 0x68]
je 0x493006
mov ecx, dword [esp + 0x48]
fldz
mov ebx, dword [esp + 0x3c]
xor esi, esi
cmp ecx, 4
jl 0x492fbc
mov edx, dword [esp + 0x44]
add ecx, 0xfffffffc
shr ecx, 2
add edx, 0x10
add ecx, 1
lea esi, [ecx*4]
fld qword [edx - 0x10]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x492f27
fchs
fcom qword [ebx + 0x750]
fnstsw ax
test ah, 0x41
jne 0x492f3c
fstp qword [ebx + 0x750]
jmp 0x492f3e
fstp st(0)
fld qword [edx - 8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x492f4c
fchs
fcom qword [ebx + 0x750]
fnstsw ax
test ah, 0x41
jne 0x492f61
fstp qword [ebx + 0x750]
jmp 0x492f63
fstp st(0)
fld qword [edx]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x492f70
fchs
fcom qword [ebx + 0x750]
fnstsw ax
test ah, 0x41
jne 0x492f85
fstp qword [ebx + 0x750]
jmp 0x492f87
fstp st(0)
fld qword [edx + 8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x492f95
fchs
fcom qword [ebx + 0x750]
fnstsw ax
test ah, 0x41
jne 0x492faa
fstp qword [ebx + 0x750]
jmp 0x492fac
fstp st(0)
add edx, 0x20
sub ecx, 1
jne 0x492f19
mov ecx, dword [esp + 0x48]
cmp esi, ecx
jge 0x492ff4
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
fld qword [edx + esi*8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x492fd6
fchs
fcom qword [ebx + 0x750]
fnstsw ax
test ah, 0x41
jne 0x492feb
fstp qword [ebx + 0x750]
jmp 0x492fed
fstp st(0)
add esi, 1
cmp esi, ecx
jl 0x492fc8
fstp st(0)
mov ecx, dword [esp + 0x3c]
fld st(0)
fdiv qword [ebx + 0x750]
fstp qword [esp + 0x68]
fld1
fcomp dword [ecx + 0x75c]
fnstsw ax
test ah, 5
jp 0x493038
fstp st(0)
fld dword [ecx + 0x75c]
call fcn.00569530
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fld1
fadd st(1), st(0)
fxch st(1)
fmul qword [esp + 0x68]
fstp qword [esp + 0x68]
xor esi, esi
cmp dword [esp + 0x48], esi
jle 0x4931ae
xor ebx, ebx
jmp 0x493052
fld1
cmp byte [esp + 0x22], 0
mov edx, dword [esp + 0x44]
fld qword [edx + esi*8]
fmul qword [esp + 0x68]
je 0x49312d
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0xe]
cmp ax, 8
jne 0x493099
push 0xff
fstp st(1)
push 0
sub esp, 8
fstp qword [esp]
call fcn.00491760
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov byte [esi + ecx], al
jmp 0x49319c
cmp ax, 0x10
jne 0x4930c6
push 0x7fff
fstp st(1)
push 0xffff8000
sub esp, 8
fstp qword [esp]
call fcn.00491820
mov edx, dword [esp + 0x40]
add esp, 0x10
mov word [edx + esi*2], ax
jmp 0x49319c
cmp ax, 0x18
jne 0x493104
push 0x7fffff
fstp st(1)
push 0xff800000
sub esp, 8
fstp qword [esp]
call fcn.004917d0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
mov cx, word [esp + 0x50]
mov dl, byte [esp + 0x52]
add esp, 0x10
add eax, ebx
mov word [eax], cx
mov byte [eax + 2], dl
jmp 0x49319c
cmp ax, 0x20
jne 0x49312d
push SysReAllocString
fstp st(1)
push SysReAllocString
sub esp, 8
fstp qword [esp]
call fcn.004917d0
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov dword [ecx + esi*4], eax
jmp 0x49319c
cmp byte [esp + 0x23], 0
je 0x493198
mov edx, dword [esp + 0x34]
movzx eax, word [edx + 0xe]
cmp ax, 0x20
jne 0x49316b
fstp st(1)
sub esp, 0x10
fld1
fstp dword [esp + 0xc]
fld dword [0x59d300]
fstp dword [esp + 8]
fstp qword [esp]
call fcn.00491880
mov eax, dword [esp + 0x40]
fstp dword [eax + esi*4]
add esp, 0x10
jmp 0x49319c
cmp ax, 0x40
jne 0x493198
sub esp, 0x18
fxch st(1)
fstp qword [esp + 0x10]
fld qword [0x5982c8]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.004918f0
mov ecx, dword [esp + 0x48]
fstp qword [ecx + esi*8]
add esp, 0x18
jmp 0x49319c
fstp st(0)
fstp st(0)
add esi, 1
add ebx, 3
cmp esi, dword [esp + 0x48]
jl 0x493050
jmp 0x4931b0
fstp st(0)
mov edx, dword [esp + 0x44]
push edx
call fcn.0044ff63
add esp, 4
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x38]
movzx edx, word [ecx + 2]
imul edx, dword [esp + 0x4c]
mov eax, dword [esi]
imul edx, edi
mov eax, dword [eax + 0x30]
push edx
push esi
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
push edx
mov ecx, edi
call fcn.004942d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8