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

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x178
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x104], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x10c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x100], eax
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xe8], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0xfc], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x110], eax
mov edi, dword [ecx + 0x24]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x118], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0xf0], eax
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xd8], 0
mov eax, dword [0x454120]
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x41d434
mov eax, dword [ebp - 0xf8]
mov dword [0x454120], eax
mov eax, 0x4fc
mov ecx, dword [ebp - 0x100]
cmp ecx, eax
mov esi, eax
mov eax, ecx
cmovle esi, ecx
mov dword [ebp - 0xe4], esi
mov dword [ebx + 0x46d8], 0
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
setle cl
mov esi, eax
test eax, eax
setle al
or cl, al
mov byte [ebp - 0x129], cl
jne 0x41fa90
cmp esi, 1
je 0x41c4df
mov eax, dword [ebx + 4]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx]
add eax, ebx
mov dword [ebp - 0xf4], eax
cmp dword [ebx + 0x6c], 0x803
je 0x41c501
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 0xa8]
cmp edx, eax
cmovle eax, edx
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0xd4]
push eax
push 0x271f
push dword [ebp - 0xf4]
call fcn.0041a518
mov dword [ebp - 0xc8], 0
add esp, 0xc
cmp dword [ebx + 0x2c], 6
jg 0x41c2d2
mov eax, dword [ebx + 0x1de0]
mov dword [ebp - 0x128], eax
test eax, eax
jne 0x41c56d
mov dword [ebx + 0x8c], 0xffffffff
mov dword [ebx + 0x46c8], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x138], 0xffffffff
mov dword [ebp - 0x134], 0xffffffff
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x110], eax
mov esi, dword [ebx + 0x90]
fldz
cmp eax, 2
je 0x41c510
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
je 0x41c54a
cmp edi, 0xffffffff
jne 0x41c165
mov eax, dword [ebp - 0xe4]
imul eax, esi
add eax, eax
add eax, eax
add eax, eax
cdq
idiv dword [ebp - 0xe0]
mov edi, eax
mov dword [ebx + 0xa0], edi
mov eax, esi
mov ecx, dword [ebp - 0xe0]
cdq
idiv ecx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x118], eax
test eax, eax
je 0x41c267
mov edi, dword [ebp - 0xe4]
cmp edi, 2
jle 0x41c21b
mov ecx, dword [ebx + 0xa0]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0xf0]
lea eax, [edx + edx]
add eax, edx
add eax, eax
add eax, eax
add eax, eax
cmp ecx, eax
jl 0x41c21f
imul edi, edx
mov dword [ebp - 0x14c], edi
cmp edx, 0x31
jg 0x41c5e0
cmp edi, 0x12b
jle 0x41cb0e
cmp ecx, 0x95f
jle 0x41cb12
mov eax, dword [ebp - 0x14c]
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x158], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0xe8]
jmp 0x41c637
fstp st(0)
jmp 0x41c221
fstp st(0)
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x37a0]
test ecx, ecx
mov eax, 0x44d
cmove ecx, eax
test edi, edi
jne 0x41c42b
cmp dword [ebp - 0xf0], 0x64
jle 0x41cb70
mov dword [ebp - 0xe0], 0
xor esi, esi
mov edx, 1
mov eax, 0x3ea
jmp 0x41c450
lea eax, [esi + esi]
add eax, esi
add eax, eax
add eax, eax
cdq
idiv ecx
mov ecx, eax
lea eax, [edi + edi]
add eax, edi
add eax, eax
add eax, eax
lea edx, [eax + 7]
cmovs eax, edx
sar eax, 3
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
add eax, edx
cdq
idiv ecx
mov edi, dword [ebp - 0xe4]
cmp eax, edi
cmovle edi, eax
imul ecx, edi
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
sar ecx, 0x1f
sub edx, ecx
mov dword [ebx + 0xa0], edx
test edi, edi
mov eax, 1
cmovg eax, edi
mov dword [ebp - 0xe4], eax
jmp 0x41c196
mov edx, dword [ebx + 0x90]
cmp edx, 0x3e7f
jle 0x41c0d6
mov ecx, dword [ebp - 0xe0]
imul ecx, dword [ebx + 0x70]
test ecx, ecx
jle 0x41f948
mov esi, dword [ebp - 0x104]
mov eax, esi
add ecx, ecx
add ecx, ecx
add ecx, esi
fldz
fld st(0)
mov esi, dword [ebp - 0xf0]
fld dword [eax]
fxch st(1)
fcomi st(1)
fcmovbe st(0), st(1)
fxch st(1)
fcomi st(2)
fcmovnbe st(0), st(2)
fstp st(2)
add eax, 4
cmp ecx, eax
jne 0x41c30e
fxch st(1)
mov dword [ebp - 0xf0], esi
fchs
fxch st(1)
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fstp dword [ebp - 0x128]
mov eax, 1
mov esi, dword [ebp - 0x108]
mov ecx, esi
shl eax, cl
mov dword [ebp - 0x120], eax
fld1
fidiv dword [ebp - 0x120]
fstp dword [ebp - 0x120]
mov eax, dword [ebx + 0x1dd4]
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0x1dd8]
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xf0]
push esi
push edx
push dword [ebp - 0x118]
push edi
push dword [ebp - 0x110]
push dword [ebp - 0xe0]
push dword [ebp - 0xfc]
push dword [ebp - 0xe8]
push dword [ebp - 0xd4]
lea eax, [ebx + 0xbc]
push eax
call fcn.004265a8
add esp, 0x30
fld dword [ebp - 0x128]
fld dword [ebp - 0x120]
fcompi st(1)
fstp st(0)
jb 0x41dc98
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x128], 1
mov dword [ebx + 0x46c8], 0
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x41c11c
cmp dword [ebx + 0x7c], 0xfffffc18
je 0x41d475
mov eax, dword [ebp - 0xa8]
cmp eax, 0xc
jg 0x41c5b1
mov edx, 0x44d
mov dword [ebx + 0x46c8], edx
jmp 0x41c11c
cmp dword [ebp - 0xf0], 0x64
jle 0x41cb2d
xor esi, esi
mov edx, 1
mov dword [ebp - 0xe0], 0
xor edi, edi
mov eax, 0x3ea
cmp ecx, 0x44e
jne 0x41d45b
test dl, dl
je 0x41d45b
mov eax, 0x3ea
mov ecx, 0x44d
push dword [ebx + 0x3770]
mov edx, dword [ebp - 0xfc]
call fcn.004197b4
pop ecx
or eax, esi
mov esi, dword [ebp - 0x10c]
mov byte [esi], al
mov eax, 1
cmp edi, 1
jle 0x41c4b9
mov eax, 2
mov edi, dword [ebp - 0xe4]
cmp edi, eax
cmovge eax, edi
mov dword [ebp - 0xe4], eax
movzx eax, byte [ebp - 0xe0]
mov byte [esi + 1], al
mov eax, 2
mov edx, dword [ebx + 0x94]
test edx, edx
je 0x41cc21
mov esi, dword [ebp - 0xf8]
mov dword [0x454120], esi
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov esi, dword [ebp - 0xe0]
lea eax, [esi + esi]
add eax, eax
add eax, esi
add eax, eax
cmp dword [ebx + 0x90], eax
jne 0x41c06e
mov eax, 0xfffffffe
jmp 0x41c4d3
mov dword [ebp - 0x11c], 0
jmp 0x41c097
cmp dword [ebx + 0x78], 1
je 0x41c136
fstp st(0)
lea eax, [ebx + 0x37b4]
push eax
push esi
push dword [ebp - 0xe0]
push dword [ebp - 0x104]
call fcn.00416c2c
add esp, 0x10
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
jne 0x41c148
mov eax, esi
shl eax, 4
sub eax, esi
add eax, eax
add eax, eax
cdq
idiv dword [ebp - 0xe0]
mov edx, dword [ebp - 0x110]
imul edx, esi
lea edi, [eax + edx]
jmp 0x41c165
lea eax, [ebx + 0xbc]
push eax
call fcn.004412a8
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x120], eax
pop eax
mov dword [ebp - 0x138], 0xffffffff
mov dword [ebp - 0x134], 0xffffffff
mov dword [ebx + 0x8c], 0xffffffff
xor eax, eax
mov dword [ebp - 0x128], eax
jmp 0x41c3e7
mov edx, 0x44e
cmp eax, 0xe
jle 0x41c420
mov edx, 0x44f
cmp eax, 0x10
jle 0x41c420
xor edx, edx
cmp eax, 0x12
setg dl
add edx, 0x450
jmp 0x41c420
mov eax, dword [ebp - 0x14c]
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x158], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x144], eax
mov edi, dword [ebp - 0xf0]
cmp edi, 0x32
je 0x41eb97
mov ecx, dword [ebp - 0x110]
lea eax, [ecx + ecx]
add eax, eax
add eax, ecx
add eax, eax
add eax, eax
add eax, eax
add eax, 0x14
lea edx, [edi - 0x32]
imul eax, edx
mov ecx, dword [ebp - 0xe8]
sub ecx, eax
mov edi, dword [ebp - 0x118]
test edi, edi
jne 0x41c653
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub eax, edx
add ecx, eax
mov eax, dword [ebp - 0x144]
add eax, 0x5a
mov dword [ebp - 0x148], eax
mov edi, dword [ebp - 0xfc]
lea eax, [edi + edi]
mov dword [ebp - 0x15c], eax
add eax, edi
add eax, eax
add eax, eax
add eax, 0x14
mov dword [ebp - 0x154], eax
mov eax, dword [ebx + 0x7c]
mov edi, dword [ebx + 0x6c]
mov dword [ebp - 0x150], edi
cmp eax, 0xbb9
je 0x41dba4
cmp eax, 0xbba
je 0x41de36
mov edx, dword [ebx + 0x8c]
test edx, edx
js 0x41df46
lea eax, [edx + edx]
add eax, eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
sar eax, 8
mov dword [ebp - 0x13c], eax
cmp edi, 0x801
jne 0x41c6ee
mov eax, 0x73
mov edi, dword [ebp - 0x13c]
cmp edi, eax
cmovle eax, edi
mov dword [ebp - 0x13c], eax
mov eax, dword [ebx + 0x78]
cmp eax, 0xfffffc18
je 0x41d756
mov edi, dword [ebp - 0x110]
cmp edi, 2
cmovne eax, edi
mov dword [ebp - 0x130], eax
mov edi, dword [ebp - 0x130]
mov dword [ebx + 0x3770], edi
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xf0]
cmp edx, 0x32
jle 0x41c743
lea eax, [edi + edi]
add eax, eax
add eax, edi
add eax, eax
add eax, eax
add eax, eax
add eax, 0x14
sub edx, 0x32
imul eax, edx
sub ecx, eax
mov edx, dword [ebp - 0x118]
test edx, edx
jne 0x41c75f
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub eax, edx
add ecx, eax
mov eax, dword [ebx + 0xb8]
mov dword [ebp - 0x140], eax
test eax, eax
je 0x41c787
mov eax, dword [ebp - 0x120]
or eax, dword [ebp - 0x128]
sete al
movzx eax, al
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x140]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x3794]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x150], 0x803
je 0x41c7e5
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
je 0x41dcd4
fstp st(0)
mov dword [ebx + 0x3790], eax
cmp eax, 0x3ea
je 0x41c7f1
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jle 0x41c7f1
jmp 0x41c7e7
fstp st(0)
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x140], eax
test eax, eax
je 0x41d4c1
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebp - 0x120]
test eax, eax
jg 0x41deab
mov ecx, 2
mov edi, 0x3ea
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 0
xor eax, eax
cmp dword [ebp - 0x130], 1
je 0x41d511
mov dword [ebx + 0x44], eax
mov esi, dword [ebp - 0xf0]
cmp esi, 0x32
jle 0x41c884
mov edx, dword [ebp - 0x130]
lea eax, [edx + edx]
add eax, eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, 0x14
lea edx, [esi - 0x32]
imul eax, edx
sub dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x118]
test eax, eax
jne 0x41c8b2
mov edx, 0x2aaaaaab
mov eax, dword [ebp - 0xe8]
imul edx
sar edx, 1
mov esi, dword [ebp - 0xe8]
mov eax, esi
sar eax, 0x1f
sub eax, edx
add esi, eax
mov dword [ebp - 0xe8], esi
mov eax, dword [ebp - 0x124]
add eax, ebx
mov dword [ebp - 0x130], eax
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0xe8]
imul esi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xe8], edx
cmp ecx, 1
jbe 0x41d705
cmp edi, 0x3ea
je 0x41de45
mov esi, dword [ebp - 0xe8]
mov eax, esi
mov ecx, dword [ebp - 0xfc]
imul eax, ecx
cdq
idiv dword [ebp - 0x154]
sub esi, eax
mov dword [ebp - 0xe8], esi
cmp dword [ebp - 0x120], 0x3ea
je 0x41dbf3
mov dword [ebp - 0x144], 0
mov ecx, dword [ebx + 0x37ac]
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x120], eax
test ecx, ecx
jne 0x41d563
mov esi, dword [ebx + 0x54]
test esi, esi
jne 0x41d563
mov eax, dword [ebp - 0x124]
cmp dword [ebx + 0x37a0], eax
jle 0x41eb64
mov eax, dword [ebp - 0x124]
mov dword [ebx + 0x37a0], eax
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41dcca
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
cmp edi, 0x3ea
je 0x41cc46
mov esi, dword [ebx + 0x90]
cmp dword [ebp - 0x158], 0x3a97
jg 0x41cc4c
mov eax, dword [ebx + 0x37a0]
mov edx, 0x44f
cmp eax, edx
cmovg eax, edx
mov dword [ebx + 0x37a0], eax
cmp esi, 0x5dc0
jg 0x41ca10
cmp esi, 0x3e80
jg 0x41ca10
cmp esi, 0x2ee0
jg 0x41ca10
cmp eax, 0x44f
je 0x41cc94
cmp esi, 0x1f40
jg 0x41ca10
cmp eax, 0x44d
jg 0x41ccaa
mov eax, dword [ebx + 0x46c8]
cmp edi, 0x3ea
sete dl
test eax, eax
je 0x41ca2b
test cl, cl
jne 0x41e084
mov esi, dword [ebx + 0x34]
mov eax, dword [ebx + 0x30]
test eax, eax
sete cl
mov eax, dword [ebp - 0xfc]
test eax, eax
sete al
or al, cl
jne 0x41ccc5
test dl, dl
jne 0x41ccc5
mov eax, dword [ebx + 0x37a0]
mov edx, 0x19
mov edi, dword [ebp - 0xfc]
cmp edi, edx
cmovle edx, edi
mov edi, 0x7d
sub edi, edx
mov dword [ebp - 0x110], edi
mov edi, eax
mov dword [ebp - 0x118], eax
jmp 0x41caf0
test esi, esi
jne 0x41ca84
add ecx, eax
mov eax, dword [ebp - 0x110]
imul ecx, eax
movzx edx, cx
lea eax, [edx + edx]
add eax, eax
add eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, edx
shl eax, 4
sub eax, edx
sar eax, 0x10
sar ecx, 0x10
lea edx, [ecx + ecx]
add edx, edx
add edx, ecx
add edx, edx
add edx, edx
add edx, edx
add edx, ecx
shl edx, 4
sub edx, ecx
add eax, edx
mov ecx, dword [ebp - 0xe8]
cmp eax, ecx
jl 0x41df3c
cmp dword [ebp - 0xfc], 5
jle 0x41ccc5
cmp edi, 0x44d
jle 0x41ccb9
sub edi, 1
mov dword [ebx + 0x37a0], edi
mov ecx, dword [edi*8 + 0x4472f8]
mov eax, dword [edi*8 + 0x4472fc]
cmp esi, 1
jne 0x41ca7e
sub ecx, eax
jmp 0x41ca84
fstp st(0)
jmp 0x41cb14
fstp st(0)
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x37a0]
test ecx, ecx
jne 0x41cb6c
mov ecx, 0x44d
test edi, edi
je 0x41cb70
cmp dword [ebp - 0xf0], 0x19
jne 0x41cb75
cmp edi, 0x3e8
je 0x41cb75
cmp edi, 0x3ea
sete dl
mov eax, edi
mov esi, 1
mov dword [ebp - 0xe0], 0
mov edi, 1
mov dword [ebp - 0xfc], 0x32
jmp 0x41c450
test edi, edi
jne 0x41cb2d
mov edi, 0x3e8
cmp dword [ebp - 0xf0], 0x10
jg 0x41f43a
cmp dword [ebp - 0x100], 1
je 0x41cbb4
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
movzx eax, byte [ebp - 0xe8]
cmp dword [ebp - 0xf0], 0xa
je 0x41df0b
test al, al
je 0x41df0b
mov edx, dword [ebp - 0xf0]
xor eax, eax
cmp edx, 0xc
setle al
mov dword [ebp - 0xf0], eax
setle al
mov esi, eax
mov byte [ebp - 0xe8], 1
mov dword [ebp - 0xe0], 0
mov edi, 0x3e8
sete al
movzx eax, al
lea eax, [eax + eax*8 + 0x10]
mov dword [ebp - 0xfc], eax
cmp ecx, 0x44f
jle 0x41fe0c
cmp byte [ebp - 0xe8], 0
je 0x41fe0c
mov edi, dword [ebp - 0xf0]
mov eax, 0x3e8
mov ecx, 0x44f
jmp 0x41c46e
mov esi, dword [ebp - 0xe4]
push esi
push eax
push dword [ebp - 0x10c]
call fcn.0042157c
add esp, 0xc
test eax, eax
mov eax, 0xfffffffd
cmove eax, esi
jmp 0x41c4c7
mov esi, dword [ebx + 0x90]
cmp esi, 0x5dc0
jg 0x41ca10
cmp dword [ebx + 0x37a0], 0x450
jle 0x41f647
mov dword [ebx + 0x37a0], 0x450
cmp esi, 0x3e80
jg 0x41ca10
mov dword [ebx + 0x37a0], 0x44f
cmp esi, 0x2ee0
jg 0x41ca10
mov dword [ebx + 0x37a0], 0x44e
cmp esi, 0x1f40
jg 0x41ca10
mov dword [ebx + 0x37a0], 0x44d
jmp 0x41ca10
mov eax, dword [ebp - 0x118]
mov dword [ebx + 0x37a0], eax
xor eax, eax
mov dword [ebx + 0x34], eax
push dword [ebp - 0x108]
push 0xfc4
push dword [ebp - 0xf4]
call fcn.0041a518
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
je 0x41d7d9
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x41d8e2
mov dword [ebx + 0x37a0], 0x44d
cmp edi, 0x3e8
jne 0x41ee41
mov esi, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0x110], 0x44d
lea eax, [esi + esi]
mov dword [ebp - 0x124], eax
lea ecx, [eax + esi]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
sar ecx, 0x1f
sub edx, ecx
cmp dword [ebp - 0xe0], edx
jg 0x41e025
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x37a8]
test eax, eax
je 0x41e73b
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0x150], 1
mov dword [ebp - 0x144], 2
push dword [ebx + 0x3770]
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x148]
mov edi, dword [ebp - 0xe4]
mov eax, edi
call fcn.00416a7c
pop edx
mov dword [ebp - 0x13c], eax
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x108], ecx
sub edi, eax
mov dword [ebp - 0x160], edi
mov eax, dword [ebp - 0x10c]
add eax, 1
mov dword [ebp - 0x15c], eax
mov esi, dword [ebp - 0xe4]
sub esi, 1
mov dword [ebp - 0x120], esi
push esi
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
push eax
call fcn.00418ca0
mov edx, dword [0x454120]
mov eax, edx
neg eax
and eax, 3
lea edi, [edx + eax]
mov dword [ebp - 0x100], edi
mov esi, dword [ebp - 0x11c]
mov eax, dword [ebp - 0xe0]
add eax, esi
mov dword [ebp - 0x138], eax
mov ecx, dword [ebx + 0x70]
imul eax, ecx
add eax, eax
add eax, eax
add eax, edi
mov dword [0x454120], eax
mov eax, esi
imul eax, ecx
add eax, eax
add eax, eax
mov edx, dword [ebx + 0xac]
sub edx, esi
imul edx, ecx
add edx, 0xdf2
add edx, edx
add edx, edx
mov ecx, edi
lea esi, [ebx + edx]
cmp eax, 4
jae 0x41deea
test al, 2
je 0x41ce79
movsw word es:[edi], word [esi]
test al, 1
je 0x41ce7e
movsb byte es:[edi], byte [esi]
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
je 0x41f5a4
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 8]
mov esi, dword [ebx + 0x3778]
sub ecx, esi
movzx edx, cx
mov eax, edx
shl eax, 5
sub eax, edx
add eax, eax
add eax, eax
sub eax, edx
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
sar eax, 0x10
sar ecx, 0x10
mov edx, ecx
shl edx, 5
sub edx, ecx
add edx, edx
add edx, edx
sub edx, ecx
add edx, edx
add edx, edx
add edx, edx
sub edx, ecx
add eax, edx
add eax, esi
mov dword [ebx + 0x3778], eax
sar eax, 8
push eax
call fcn.00437d74
pop edx
cmp dword [ebx + 0x6c], 0x800
mov esi, dword [ebx + 0x70]
mov edx, dword [ebp - 0x11c]
je 0x41e4a6
imul edx, esi
add edx, edx
add edx, edx
mov eax, dword [ebp - 0x100]
add edx, eax
fld dword [0x4469ec]
fidiv dword [ebx + 0x90]
fld1
fsub st(1)
fld dword [ebx + 0x3780]
xor eax, eax
cmp esi, 2
je 0x41f37e
mov ecx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe0]
fld dword [ecx + eax*4]
fld st(0)
fsub st(2)
fxch st(2)
fmul st(3)
fxch st(1)
fmul st(4)
fadd dword [0x4469e8]
faddp st(1)
fxch st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp edi, eax
jg 0x41cf3b
fstp st(1)
fstp st(1)
fstp dword [ebx + 0x3780]
jmp 0x41cf72
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edi, dword [ebp - 0x114]
test edi, edi
je 0x41cfc6
mov edx, dword [ebp - 0x11c]
imul edx, esi
add edx, edx
add edx, edx
mov eax, dword [ebp - 0x100]
add edx, eax
mov ecx, dword [ebx + 0xb4]
and ecx, 7
mov eax, dword [ebp - 0xe0]
imul eax, esi
push eax
push edx
push edx
call dword [ecx*4 + 0x447320]
add esp, 0xc
fld dword [0x446990]
fcompi st(1)
jbe 0x41d3d4
fucompi st(0)
jp 0x41d3d6
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xfc], eax
cmp eax, 0x3ea
je 0x41e0ea
mov eax, dword [0x454120]
mov edx, eax
and edx, 1
lea esi, [eax + edx]
mov dword [ebp - 0x134], esi
mov edi, dword [ebx + 0x70]
mov eax, dword [ebp - 0xe0]
imul eax, edi
add eax, eax
add eax, esi
mov dword [0x454120], eax
mov dword [ebp - 0x154], 0xffffffff
mov esi, dword [ebp - 0xc8]
test esi, esi
je 0x41d034
fld dword [0x4469cc]
fld dword [ebp - 0xa4]
xor eax, eax
fcompi st(1)
fstp st(0)
setae al
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x148]
mov esi, dword [ebp - 0xe0]
imul eax, esi
mov ecx, dword [ebp - 0x124]
add ecx, ecx
add ecx, ecx
cdq
idiv ecx
mov esi, dword [ebp - 0x160]
cmp eax, esi
cmovg eax, esi
sub eax, 1
mov esi, dword [ebp - 0xf0]
imul eax, esi
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebx + 0x3770]
mov dword [ebp - 0x160], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x90]
mov dword [ebp - 0x124], eax
mov esi, dword [ebx + 0x37b0]
cmp dword [ebp - 0xfc], 0x3e9
je 0x41f207
mov eax, dword [ebp - 0x114]
mov dword [ebx + 0x24], eax
test esi, esi
je 0x41d1ef
mov ecx, dword [ebp - 0x148]
test ecx, ecx
je 0x41d1ef
mov edx, dword [ebx + 0xb0]
test edx, edx
jne 0x41d1ef
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x114], eax
cmp eax, 0x44d
je 0x41fca7
cmp eax, 0x44e
je 0x41fd3b
fld dword [0x4469ac]
fld dword [0x4469b0]
mov eax, 0x11
test edi, edi
jle 0x41fdac
add eax, eax
add eax, eax
lea edx, [esi + eax]
lea esi, [edi + edi]
add esi, esi
add esi, edi
add esi, esi
add esi, esi
add esi, edi
xor ecx, ecx
fldz
mov dword [ebp - 0x164], edi
mov edi, eax
mov eax, edx
sub eax, edi
jmp 0x41d15c
fld dword [0x4469c0]
fxch st(2)
fcomi st(2)
ja 0x41ec8e
fstp st(0)
fstp st(0)
jmp 0x41d153
fstp st(1)
faddp st(1)
add eax, 4
cmp edx, eax
je 0x41d17b
fld dword [eax]
fld dword [0x446988]
fcomi st(1)
ja 0x41d13b
fstp st(0)
fstp st(0)
fld dword [0x4469bc]
faddp st(1)
add eax, 4
cmp edx, eax
jne 0x41d15c
add edx, 0x54
add ecx, 0x15
cmp ecx, esi
jne 0x41d135
mov edi, dword [ebp - 0x164]
fdivrp st(1)
mov dword [ebp - 0x164], edi
fimul dword [ebp - 0x164]
fadd dword [0x446a00]
fmulp st(1)
fstp dword [ebp - 0x164]
cvttss2si esi, dword [ebp - 0x164]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x164], eax
mov ecx, eax
neg ecx
add ecx, ecx
mov eax, 0x55555556
imul ecx
sar ecx, 0x1f
sub edx, ecx
cmp edx, esi
cmovl edx, esi
mov esi, dword [ebp - 0x114]
sub esi, 0x450
cmp esi, 1
jbe 0x41fb75
mov esi, dword [ebp - 0x164]
add esi, edx
mov dword [ebx + 0x24], esi
mov esi, dword [ebp - 0xe0]
mov eax, esi
shl eax, 5
sub eax, esi
add eax, eax
add eax, eax
add eax, esi
add eax, eax
add eax, eax
add eax, eax
cdq
idiv dword [ebp - 0x124]
fld1
cmp dword [ebp - 0x110], 0x44d
fstp dword [ebp - 0x114]
je 0x41f59a
cmp dword [ebp - 0x110], 0x44e
mov ecx, 0x2ee0
mov esi, 0x3e80
cmove esi, ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 8], edi
mov eax, dword [ebp - 0x160]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x1c], esi
mov eax, dword [ebp - 0x148]
test eax, eax
sete al
sete cl
movzx ecx, cl
mov dword [ebp - 0x168], ecx
mov ecx, dword [ebp - 0x120]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [ebp - 0x16c], ecx
cmp dword [ebp - 0x13c], 1
setg dl
and dl, byte [ebp - 0x108]
mov byte [ebp - 0x164], dl
cmp dword [ebp - 0xfc], 0x3e9
je 0x41f31f
mov dword [ebx + 0x18], 0x1f40
mov dword [ebx + 0x14], 0x3e80
cmp dword [ebp - 0xfc], 0x3e8
jne 0x41d312
cmp dword [ebp - 0xf0], 0x32
jle 0x41d2da
mov eax, dword [ebp - 0x14c]
shl eax, 4
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
mov dword [ebp - 0x158], edx
mov edx, dword [ebp - 0x158]
cmp edx, 0x1f3f
jg 0x41d312
mov dword [ebx + 0x14], 0x2ee0
mov eax, 0x2ee0
cmp esi, eax
cmovle eax, esi
mov dword [ebx + 0x1c], eax
cmp edx, 0x1b57
jg 0x41d312
mov dword [ebx + 0x14], 0x1f40
mov dword [ebx + 0x1c], 0x1f40
cmp byte [ebp - 0x164], 0
je 0x41d332
mov eax, dword [ebp - 0x13c]
add eax, eax
add eax, eax
add eax, eax
add eax, 1
mov ecx, dword [ebp - 0x16c]
sub ecx, eax
mov eax, dword [ebp - 0x168]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], ecx
lea eax, [ebx + 8]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x144]
test eax, eax
jne 0x41f462
mov ecx, dword [ebx + 0x70]
mov esi, dword [ebp - 0xe0]
imul esi, ecx
test esi, esi
jle 0x41eca7
mov eax, dword [ebp - 0x11c]
imul ecx, eax
lea eax, [ecx + ecx]
add eax, eax
mov edi, dword [ebp - 0x100]
add eax, edi
mov edx, dword [ebp - 0x134]
add ecx, esi
add ecx, ecx
add ecx, ecx
add ecx, edi
jmp 0x41d3bc
fstp st(1)
fld dword [0x4469c8]
fcomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
fstp dword [ebp - 0xfc]
cvtss2si esi, dword [ebp - 0xfc]
mov word [edx], si
add eax, 4
add edx, 2
cmp ecx, eax
je 0x41eca7
fld dword [0x446984]
fmul dword [eax]
fld dword [0x4469c4]
fxch st(1)
fcomi st(1)
ja 0x41d38f
fstp st(0)
jmp 0x41d39d
fstp st(0)
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp - 0xe0]
imul edx, eax
add edx, edx
add edx, edx
mov esi, dword [ebp - 0x11c]
imul eax, esi
add eax, eax
add eax, eax
mov esi, dword [ebp - 0x100]
add eax, esi
push edx
push 0
push eax
call sub.MSVCR80.dll_memset
mov dword [ebx + 0x3780], 0
mov dword [ebx + 0x3784], 0
mov dword [ebx + 0x3788], 0
mov dword [ebx + 0x378c], 0
add esp, 0xc
jmp 0x41cfc6
mov dword [ebp - 0xe4], edx
push 0x1d4c0
call sub.MSVCR80.dll_malloc
mov dword [ebp - 0xf8], eax
mov dword [0x454124], eax
pop esi
mov edx, dword [ebp - 0xe4]
jmp 0x41c016
cmp eax, 0x3e9
jne 0x41c46e
mov edx, 0x450
cmp ecx, edx
cmovl ecx, edx
jmp 0x41c46e
mov eax, dword [ebx + 0x3794]
test eax, eax
jne 0x41dc65
fld dword [ebp - 0xb4]
fsubr dword [0x446980]
fmul dword [0x4469d4]
fadd dword [0x446988]
sub esp, 8
fstp qword [esp]
call sub.MSVCR80.dll_floor
pop esi
pop edi
fstp qword [ebp - 0xf0]
cvttsd2si eax, qword [ebp - 0xf0]
mov dword [ebx + 0x8c], eax
jmp 0x41c40c
mov edi, dword [ebx + 0x3790]
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41f3e6
cmp edi, 0x3ea
je 0x41deab
lea ecx, [edi - 0x3e8]
xor eax, eax
cmp dword [ebp - 0x120], 0x3ea
sete al
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x160], eax
xor eax, eax
cmp dword [ebp - 0x130], 1
jne 0x41c854
cmp dword [ebx + 0x3798], 2
jne 0x41c854
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x41f951
cmp edi, 0x3ea
je 0x41c854
cmp dword [ebp - 0x120], 0x3ea
je 0x41c854
mov dword [ebx + 0x3770], 2
mov eax, 1
mov dword [ebp - 0x130], 2
jmp 0x41c854
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x110], 2
je 0x41dbb3
mov edx, 0x44df20
mov eax, 0x44df40
mov esi, dword [ebp - 0x13c]
imul esi, esi
movd xmm0, esi
pshufd xmm0, xmm0, 0
movdqu xmm2, xmmword [edx]
movdqu xmm1, xmmword [eax]
psubd xmm1, xmm2
movdqu xmm4, xmm1
pmuludq xmm4, xmm0
psrlq xmm1, 0x20
movdqu xmm3, xmm0
psrlq xmm3, 0x20
pmuludq xmm1, xmm3
pshufd xmm4, xmm4, 8
pshufd xmm1, xmm1, 8
punpckldq xmm4, xmm1
psrad xmm4, 0xe
movdqu xmm1, xmm4
paddd xmm1, xmm2
movdqu xmmword [ebp - 0x88], xmm1
movdqu xmm2, xmmword [edx + 0x10]
movdqu xmm1, xmmword [eax + 0x10]
psubd xmm1, xmm2
pmuludq xmm0, xmm1
psrlq xmm1, 0x20
pmuludq xmm1, xmm3
pshufd xmm0, xmm0, 8
pshufd xmm1, xmm1, 8
punpckldq xmm0, xmm1
psrad xmm0, 0xe
paddd xmm0, xmm2
movdqu xmmword [ebp - 0x78], xmm0
mov eax, 0x451
mov dword [ebp - 0x110], edi
mov edi, ecx
mov ecx, dword [ebp - 0x118]
mov edx, dword [ecx + eax*8 - 0x2270]
mov esi, dword [ecx + eax*8 - 0x226c]
test edi, edi
jne 0x41d654
cmp dword [ebx + 0x37a4], eax
jl 0x41d6eb
sub edx, esi
mov esi, dword [ebp - 0xe8]
cmp edx, esi
jle 0x41dbd6
sub eax, 1
cmp eax, 0x44d
jne 0x41d634
mov ecx, edi
mov edi, dword [ebp - 0x110]
mov dword [ebx + 0x37a4], eax
mov dword [ebx + 0x37a0], eax
test ecx, ecx
jne 0x41d6f2
cmp edi, 0x3ea
je 0x41eef8
mov edx, dword [ebx + 0x58]
test edx, edx
jne 0x41d6db
cmp eax, 0x44f
jle 0x41d6db
mov dword [ebx + 0x37a0], 0x44f
cmp dword [ebp - 0x124], 0x44e
jle 0x41c978
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41eb74
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
jmp 0x41c9ae
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c978
jmp 0x41d6b8
add edx, esi
jmp 0x41d654
mov esi, dword [ebp - 0x124]
cmp eax, esi
jle 0x41c984
jmp 0x41c978
cmp dword [ebp - 0x144], 1
jg 0x41d728
mov ecx, edx
add ecx, edx
add ecx, ecx
mov eax, 0x66666667
imul ecx
sar edx, 1
sar ecx, 0x1f
sub edx, ecx
mov dword [ebp - 0xe8], edx
mov esi, dword [ebp - 0xe8]
mov eax, esi
mov edx, dword [ebp - 0xfc]
imul eax, edx
mov ecx, dword [ebp - 0x15c]
add ecx, edx
add ecx, ecx
add ecx, 0xa
cdq
idiv ecx
sub esi, eax
mov dword [ebp - 0xe8], esi
jmp 0x41c91b
cmp dword [ebp - 0x110], 2
jne 0x41f1f6
mov eax, dword [ebp - 0x13c]
mov edx, eax
imul edx, eax
mov eax, edx
shl eax, 5
sub eax, edx
add eax, eax
add eax, eax
add eax, edx
shl eax, 4
sar eax, 0xe
lea edi, [eax + 0x4650]
cmp dword [ebx + 0x3770], 2
jne 0x41d796
lea edi, [eax + 0x3e80]
mov eax, dword [ebp - 0x148]
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp - 0xfc]
imul eax, ecx
cdq
idiv dword [ebp - 0x154]
sub ecx, eax
xor eax, eax
cmp edi, ecx
setl al
add eax, 1
mov dword [ebp - 0x130], eax
jmp 0x41c70e
mov esi, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], esi
mov eax, dword [ebx + 0xb0]
cmp esi, 0x44e
jne 0x41d807
mov dword [ebx + 0x37a0], 0x44f
mov dword [ebp - 0x110], 0x44f
test eax, eax
je 0x41d81f
mov dword [ebx + 0x37a0], 0x44d
mov dword [ebp - 0x110], 0x44d
mov esi, dword [ebx + 0x90]
mov ecx, 0x51eb851f
mov eax, esi
imul ecx
sar edx, 4
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xe0], edx
jg 0x41d93f
lea eax, [esi + esi]
mov dword [ebp - 0x124], eax
add eax, esi
mov dword [ebp - 0x118], eax
imul ecx
mov ecx, edx
sar ecx, 4
mov eax, dword [ebp - 0x118]
sar eax, 0x1f
sub ecx, eax
cmp dword [ebp - 0xe0], ecx
jg 0x41d93f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov esi, dword [ebx + 0x37a8]
test esi, esi
je 0x41e740
mov dword [ebx + 0x37a8], 0
cmp edi, 0x3ea
jne 0x41cd8b
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x150], 1
mov dword [ebp - 0x144], 2
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x108], 0
jmp 0x41cdda
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], eax
cmp edi, 0x3e8
jne 0x41ef2f
cmp dword [ebp - 0x110], 0x44f
jle 0x41fdf1
mov dword [ebx + 0x3790], 0x3e9
mov esi, dword [ebx + 0x90]
mov edi, 0x51eb851f
mov eax, esi
imul edi
sar edx, 4
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xe0], edx
jle 0x41eb1c
mov eax, dword [ebp - 0xe0]
cdq
idiv dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x134]
cmp eax, 0xffffffff
je 0x41d96f
mov dword [ebx + 0x1dd4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebx + 0x1dd8], eax
mov eax, dword [0x454120]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x41f5c1
mov eax, dword [ebp - 0xe4]
cmp eax, 2
je 0x41dfe0
lea edi, [eax + eax]
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41d9f1
cmp dword [ebx + 0xa4], 0xffffffff
je 0x41d9f1
mov eax, dword [ebx + 0xa0]
lea edx, [eax + eax]
add eax, edx
mov dword [ebp - 0xe0], eax
lea eax, [esi + esi]
add eax, esi
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xe4]
imul ecx, esi
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0xe0]
cdq
idiv ecx
mov esi, dword [ebp - 0x100]
cmp esi, eax
cmovle eax, esi
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
sub eax, edi
mov edi, dword [ebp - 0xe4]
cdq
idiv edi
mov edx, 0x4fb
cmp eax, edx
mov esi, edx
cmovle esi, eax
lea eax, [esi + 1]
mov dword [ebp - 0xe0], eax
imul edi, eax
mov ecx, edi
mov eax, dword [ebp - 0xe8]
add ecx, eax
mov eax, 0x12c
sub eax, ecx
and eax, 0x12b
lea edx, [ecx + eax]
lea eax, [edx + 0x12c]
mov dword [0x454120], eax
push edx
mov dword [ebp - 0xf0], edx
call fcn.00421e34
mov eax, dword [ebx + 0x88]
mov dword [ebp - 0x110], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x118], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 0x3790]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x37a0]
mov dword [ebx + 0x80], eax
mov eax, dword [ebx + 0x3770]
mov dword [ebx + 0x78], eax
mov ecx, dword [ebx + 0x44]
pop esi
test ecx, ecx
mov edx, dword [ebp - 0xf0]
je 0x41dcbf
mov dword [ebx + 0x78], 1
mov eax, dword [ebp - 0xe4]
test eax, eax
jle 0x41df76
movzx eax, byte [ebp - 0x140]
and eax, 1
mov byte [ebp - 0xf4], al
mov eax, dword [ebp - 0xe4]
sub eax, 1
mov dword [ebp - 0xf0], eax
mov edi, dword [ebp - 0xe8]
xor esi, esi
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x120], ecx
mov eax, ebx
mov ebx, edi
mov edi, eax
jmp 0x41db68
push dword [ebp - 0x114]
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x108]
push dword [ebp - 0xe0]
push ebx
mov eax, dword [ebp - 0xfc]
push eax
imul eax, dword [edi + 0x70]
imul eax, esi
add eax, eax
add eax, eax
mov edx, dword [ebp - 0x104]
add eax, edx
push eax
push edi
call fcn.0041bf80
add esp, 0x34
test eax, eax
js 0x41dc7b
push eax
push ebx
push dword [ebp - 0xe8]
call fcn.00421d70
add esp, 0xc
test eax, eax
js 0x41dc7b
add esi, 1
mov eax, dword [ebp - 0xe0]
add ebx, eax
cmp dword [ebp - 0xe4], esi
je 0x41df68
mov dword [edi + 0x44], 0
mov ecx, dword [ebp - 0xf0]
xor eax, eax
cmp esi, ecx
setl al
mov dword [edi + 0x46d4], eax
jne 0x41daee
cmp byte [ebp - 0xf4], 0
je 0x41daee
mov dword [edi + 0x88], 0x3ea
jmp 0x41daee
mov dword [ebp - 0x13c], 0x7f
jmp 0x41c6ee
cmp dword [ebx + 0x78], 1
mov edx, 0x44df20
mov eax, 0x44ffe0
cmovne edx, eax
mov eax, 0x44df40
mov esi, 0x450000
cmovne eax, esi
jmp 0x41d58f
mov ecx, edi
mov edi, dword [ebp - 0x110]
cmp eax, 0x44e
jne 0x41d674
mov eax, 0x44f
jmp 0x41d674
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
push eax
push dword [ebx + 0xb4]
push dword [ebp - 0x130]
call fcn.00429cdc
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
jne 0x41ea48
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x110], eax
mov ecx, dword [ebx + 0x37ac]
mov dword [ebp - 0x144], 1
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x120], eax
jmp 0x41d578
cmp eax, 0x3ea
je 0x41f5b6
fld dword [ebp - 0xb0]
jmp 0x41d489
mov eax, 0xfffffffd
mov ebx, dword [ebp - 0xf8]
mov dword [0x454120], ebx
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
fld dword [0x4469cc]
fld dword [ebp - 0xa4]
fcompi st(1)
fstp st(0)
ja 0x41f5dc
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x120], eax
jmp 0x41c59a
mov dword [ebx + 0x3798], eax
jmp 0x41daa5
mov ecx, 1
jmp 0x41c9a2
fld1
fsub st(1)
fld dword [0x4469d8]
fld st(1)
fmul st(1)
fxch st(1)
fmul st(3)
faddp st(1)
fstp dword [ebp - 0x160]
cvttss2si edi, dword [ebp - 0x160]
fmul dword [0x4469dc]
fxch st(1)
fmul dword [0x4469e0]
faddp st(1)
fstp dword [ebp - 0x160]
cvttss2si eax, dword [ebp - 0x160]
sub eax, edi
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x13c]
mov edx, eax
imul edx, eax
mov eax, dword [ebp - 0x160]
imul eax, edx
sar eax, 0xe
add eax, edi
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x150], 0x800
je 0x41ebb1
cmp dword [ebp - 0x120], 0x3ea
je 0x41eba2
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41dd6f
add dword [ebp - 0x160], 0xfa0
mov eax, dword [ebp - 0x148]
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
mov edi, edx
sar edi, 5
sar ecx, 0x1f
sub edi, ecx
mov ecx, dword [ebp - 0xfc]
mov eax, ecx
imul eax, edi
cdq
idiv dword [ebp - 0x154]
sub edi, eax
xor eax, eax
cmp dword [ebp - 0x160], edi
setle al
lea eax, [eax + eax + 0x3e8]
mov dword [ebx + 0x3790], eax
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x41ddda
mov eax, 0x80
mov edi, dword [ebp - 0x13c]
sub eax, edi
sar eax, 4
cmp eax, ecx
jge 0x41ddda
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0x13c], 0x64
jle 0x41ddf6
test byte [ebp - 0x140], 1
je 0x41ddf6
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0xf0], 0x32
mov eax, 0x2328
mov edx, 0x1770
cmovle eax, edx
mov edi, dword [ebp - 0xe0]
imul eax, edi
lea ecx, [esi + esi]
add ecx, ecx
add ecx, ecx
cdq
idiv ecx
mov edi, dword [ebp - 0xe4]
cmp eax, edi
jg 0x41c7e7
mov eax, dword [ebx + 0x3790]
jmp 0x41c7c1
mov dword [ebp - 0x13c], 0
jmp 0x41c6ee
cmp dword [ebp - 0x144], 4
jg 0x41de72
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + eax]
add ecx, ecx
add ecx, ecx
add ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
sar ecx, 0x1f
sub edx, ecx
mov dword [ebp - 0xe8], edx
mov ecx, dword [ebx + 0x37ac]
mov dword [ebp - 0x144], 0
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x120], eax
jmp 0x41d578
cmp dword [ebp - 0x120], 0x3ea
jne 0x41ebc0
mov edi, dword [ebx + 0x3790]
lea ecx, [edi - 0x3e8]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 0
jmp 0x41c845
and ecx, 1
jne 0x41fcd1
test edi, 2
jne 0x41fcbd
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41ce73
mov eax, 0x32
xor edx, edx
idiv dword [ebp - 0xf0]
mov dword [ebp - 0xe0], eax
mov esi, 3
mov dword [ebp - 0xf0], 3
mov dword [ebp - 0xfc], 0x32
jmp 0x41cbf3
mov eax, 1
jmp 0x41ccc7
cmp dword [ebp - 0x150], 0x800
mov edx, 0x30
mov eax, 0x73
cmovne eax, edx
mov dword [ebp - 0x13c], eax
jmp 0x41c6ee
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x120]
mov ebx, edi
mov dword [ebp - 0xe0], ecx
xor eax, eax
mov ecx, dword [ebx + 0x94]
test ecx, ecx
sete al
push eax
push 0
push dword [ebp - 0x100]
push dword [ebp - 0x10c]
push dword [ebp - 0xe4]
push 0
push edx
call fcn.00421e40
add esp, 0x1c
test eax, eax
mov ecx, dword [ebp - 0xe0]
js 0x41dc7b
mov esi, dword [ebp - 0x110]
mov dword [ebx + 0x88], esi
mov esi, dword [ebp - 0x118]
mov dword [ebx + 0x80], esi
mov esi, dword [ebp - 0x11c]
mov dword [ebx + 0x78], esi
mov dword [ebx + 0x44], ecx
jmp 0x41dc80
mov edi, 3
jmp 0x41d994
lea eax, [esi + esi]
mov dword [ebp - 0x124], eax
add eax, esi
mov dword [ebp - 0x118], eax
imul ecx
sar edx, 4
mov eax, dword [ebp - 0x118]
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jge 0x41d879
cmp edi, 0x3e8
jne 0x41d93f
mov ecx, 0x51eb851f
mov eax, dword [ebp - 0x124]
imul ecx
sar edx, 3
mov eax, dword [ebp - 0x124]
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp - 0xe0]
cmp edx, eax
je 0x41ec75
mov edi, dword [ebp - 0x124]
add edi, esi
mov eax, edi
imul ecx
mov eax, edx
sar eax, 3
sar edi, 0x1f
sub eax, edi
mov ecx, dword [ebp - 0xe0]
cmp eax, ecx
jne 0x41d93f
mov ecx, edx
sar ecx, 4
sub ecx, edi
mov dword [ebp - 0xfc], ecx
jmp 0x41d93f
mov esi, dword [ebx + 0x3770]
mov dword [ebp - 0x110], esi
imul ecx, esi, 0x4650
mov esi, dword [ebp - 0xe8]
cmp ecx, esi
jl 0x41eac3
cmp edi, 0x3ea
je 0x41fad1
imul edi, dword [ebp - 0x110], 0x7530
mov ecx, 0x44f
mov esi, dword [ebp - 0xe8]
cmp edi, esi
jge 0x41eafb
imul ecx, dword [ebp - 0x110], 0xabe0
cmp ecx, esi
setl cl
movzx ecx, cl
add ecx, 0x450
jmp 0x41eafb
fld1
fstp dword [ebp - 0x114]
mov eax, dword [ebp - 0x110]
lea edx, [eax - 0x44d]
mov eax, 0x15
cmp edx, 3
ja 0x41e10f
mov eax, dword [edx*4 + 0x448780]
push eax
push 0x271c
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push dword [ebx + 0x3770]
push 0x2718
push esi
call fcn.0041a518
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0041a518
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41e381
mov edx, dword [0x454120]
mov eax, edx
neg eax
and eax, 3
lea edi, [edx + eax]
mov dword [ebp - 0x124], edi
mov esi, dword [ebx + 0x70]
mov ecx, dword [ebx + 0x90]
imul ecx, esi
mov eax, 0x51eb851f
imul ecx
mov eax, edx
sar eax, 7
sar ecx, 0x1f
sub eax, ecx
add eax, eax
add eax, eax
add eax, edi
mov dword [0x454120], eax
mov eax, dword [ebx + 0xac]
mov edx, eax
mov edi, dword [ebp - 0x138]
sub edx, edi
imul edx, esi
lea edi, [ebx + 0x37c8]
test edx, edx
jle 0x41eec6
mov ecx, dword [ebp - 0xe0]
sub eax, ecx
mov edx, dword [ebp - 0x11c]
sub eax, edx
imul eax, esi
add eax, eax
lea edx, [eax + eax]
push edx
mov dword [ebp - 0xf0], edx
imul ecx, esi
mov eax, ecx
add eax, 0xdf2
add eax, eax
add eax, eax
add eax, ebx
push eax
push edi
call sub.MSVCR80.dll_memmove
mov edx, dword [ebp - 0xf0]
add edx, 0x37c8
mov eax, dword [ebp - 0x138]
imul eax, esi
add eax, eax
add eax, eax
lea edi, [ebx + edx]
mov esi, dword [ebp - 0x100]
cmp eax, 4
jae 0x41ea9f
test al, 2
jne 0x41ea98
test al, 1
jne 0x41ea92
add esp, 0xc
fld dword [ebx + 0x377c]
fld1
fcomi st(1)
ja 0x41e343
fld dword [ebp - 0x114]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x41e345
fstp st(0)
movss xmm5, dword [ebp - 0x114]
movss dword [ebx + 0x377c], xmm5
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x37b0]
cmp edi, 0x3e9
je 0x41ef3c
mov edx, 0x4000
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jle 0x41ea60
mov dword [ebx + 0x5c], edx
test ecx, ecx
je 0x41f69b
cmp edi, 0x3ea
je 0x41e77b
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
add eax, 0x11
mov esi, dword [ebp - 0x120]
lea ecx, [esi + esi]
lea edx, [ecx + ecx]
add edx, edx
cmp edi, 0x3e9
je 0x41ef66
cmp eax, edx
jg 0x41eb7e
mov edi, dword [ebp - 0x108]
test edi, edi
jne 0x41f9cd
mov edi, dword [ebx + 0x3790]
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xf0], 0
cmp edi, 0x3ea
je 0x41f669
cmp edi, 0x3e8
jne 0x41f81b
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
add eax, 7
sar eax, 3
mov edi, eax
push dword [ebp - 0x118]
call fcn.00418a64
pop ecx
mov dword [ebp - 0xfc], edi
mov esi, 0x11
jmp 0x41e7bf
fstp st(0)
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 4]
push dword [ebx + 0x90]
push dword [eax + 0x3c]
push dword [ebx + 0x70]
push dword [ebp - 0xe0]
push dword [ebp - 0x114]
sub esp, 4
fstp dword [esp]
mov eax, dword [ebp - 0x100]
mov edx, eax
call fcn.004196a0
add esp, 0x18
jmp 0x41e249
push 0
push 0xfa6
push esi
call fcn.0041a518
xor eax, eax
mov edx, dword [ebx + 0x4c]
test edx, edx
sete al
add eax, eax
push eax
push 0x2712
push esi
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
cmp eax, 0x3e9
je 0x41ec14
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41fa38
mov edx, dword [0x454120]
mov eax, edx
neg eax
and eax, 3
add eax, edx
mov dword [ebp - 0x124], eax
mov esi, dword [ebx + 0x70]
mov eax, dword [ebx + 0x90]
mov dword [ebp - 0xfc], eax
mov edi, eax
imul edi, esi
mov eax, 0x51eb851f
imul edi
mov ecx, edx
sar ecx, 7
sar edi, 0x1f
sub ecx, edi
add ecx, ecx
add ecx, ecx
mov eax, dword [ebp - 0x124]
add eax, ecx
mov dword [0x454120], eax
cmp dword [ebp - 0xf0], 0x3e8
je 0x41e190
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41e190
mov edi, dword [ebp - 0xf0]
cmp eax, edi
je 0x41e190
mov edi, dword [ebx + 0xac]
mov eax, dword [ebp - 0x11c]
sub edi, eax
mov edx, 0x51eb851f
mov eax, dword [ebp - 0xfc]
imul edx
sar edx, 7
mov eax, dword [ebp - 0xfc]
sar eax, 0x1f
sub eax, edx
add eax, edi
imul eax, esi
add eax, 0xdf2
add eax, eax
lea edx, [eax + eax]
mov eax, ecx
mov ecx, dword [ebp - 0x124]
mov edi, ecx
lea esi, [ebx + edx]
cmp eax, 4
jae 0x41fadb
test al, 2
je 0x41e499
movsw word es:[edi], word [esi]
test al, 1
je 0x41e49e
movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 0x70]
jmp 0x41e190
imul edx, esi
add edx, edx
add edx, edx
mov edi, dword [ebp - 0x100]
add edi, edx
mov dword [ebp - 0x170], edi
cwde
lea ecx, [eax + eax]
add ecx, ecx
add ecx, eax
add ecx, ecx
add ecx, ecx
sub ecx, eax
mov edx, ecx
shl edx, 6
add ecx, edx
add ecx, ecx
add ecx, eax
mov edi, dword [ebx + 0x90]
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov eax, edi
sar eax, 0x1f
mov edi, edx
sub edi, eax
mov eax, ecx
cdq
idiv edi
mov edi, eax
shl eax, 4
sub eax, edi
add eax, eax
add eax, eax
sub eax, edi
add eax, eax
add eax, eax
add eax, eax
mov ecx, edi
sub ecx, eax
mov dword [ebp - 0x174], ecx
lea eax, [ecx + 0x10000000]
mov ecx, eax
sar ecx, 6
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x134], eax
sar eax, 0x16
mov dword [ebp - 0x154], eax
mov edx, edi
sar edx, 0x10
mov eax, edx
mov edx, edi
sar edx, 0xf
mov ecx, edx
add ecx, 1
sar ecx, 1
mov dword [ebp - 0x164], ecx
movsx edx, di
mov ecx, edx
movzx edx, di
mov dword [ebp - 0x178], ecx
imul edx, ecx
sar edx, 0x10
mov ecx, edx
movzx edx, word [ebp - 0x164]
add edx, eax
imul edx, edi
mov dword [ebp - 0x168], ecx
add dx, word [ebp - 0x168]
movsx edx, dx
movzx ecx, word [ebp - 0xfc]
mov dword [ebp - 0x16c], ecx
movsx ecx, word [ebp - 0xfc]
mov dword [ebp - 0x17c], ecx
mov ecx, dword [ebp - 0x178]
imul eax, ecx
mov ecx, dword [ebp - 0x168]
add eax, ecx
mov ecx, dword [ebp - 0x164]
imul ecx, edi
add eax, ecx
sub eax, 0x800000
sar eax, 0xf
add eax, 1
sar eax, 1
mov ecx, dword [ebp - 0xfc]
imul eax, ecx
mov edi, dword [ebp - 0x16c]
imul edi, edx
mov ecx, edi
sar ecx, 0x10
mov edi, dword [ebp - 0x154]
imul edx, edi
add ecx, edx
lea edx, [eax + ecx]
mov dword [ebp - 0x164], edx
fld dword [0x4469e4]
fld st(0)
fimul dword [ebp - 0x164]
mov edi, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x17c]
imul edi, edx
sar edi, 0x10
mov eax, dword [ebp - 0x154]
imul eax, edx
mov edx, eax
add edx, edi
mov eax, dword [ebp - 0x134]
sar eax, 0x15
add eax, 1
sar eax, 1
mov ecx, dword [ebp - 0xfc]
imul eax, ecx
add eax, edx
mov dword [ebp - 0xfc], eax
fld st(1)
fimul dword [ebp - 0xfc]
fld st(2)
fimul dword [ebp - 0x134]
fxch st(3)
mov eax, 0xf0000000
mov ecx, dword [ebp - 0x174]
sub eax, ecx
add eax, eax
mov dword [ebp - 0xfc], eax
fimul dword [ebp - 0xfc]
lea eax, [esi + esi]
lea edi, [eax + eax]
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x170]
xor eax, eax
mov dword [ebp - 0xfc], esi
mov esi, dword [ebp - 0xe0]
fld dword [ecx]
fld st(4)
fmul st(1)
fld dword [ebx + 0x3780]
fadd st(1)
fld st(5)
fmul st(1)
fsubr dword [ebx + 0x3784]
fxch st(3)
fmul st(4)
faddp st(3)
fxch st(2)
fstp dword [ebx + 0x3780]
fld st(1)
fmul st(4)
fsubp st(1)
fadd dword [0x4469e8]
fstp dword [ebx + 0x3784]
fstp dword [edx]
add eax, 1
add ecx, edi
add edx, edi
cmp esi, eax
jg 0x41e681
mov esi, dword [ebp - 0xfc]
cmp esi, 2
jne 0x41cf6a
xor eax, eax
mov edx, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe0]
fld dword [ecx + eax*8 + 4]
fld st(4)
fmul st(1)
fld dword [ebx + 0x3788]
fadd st(1)
fld st(5)
fmul st(1)
fsubr dword [ebx + 0x378c]
fxch st(3)
fmul st(4)
faddp st(3)
fxch st(2)
fstp dword [ebx + 0x3788]
fld st(1)
fmul st(4)
fsubp st(1)
fadd dword [0x4469e8]
fstp dword [ebx + 0x378c]
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp edi, eax
jg 0x41e6e9
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x41cf72
mov edi, 0x3e8
cmp edi, 0x3ea
je 0x41e756
mov ecx, dword [ebp - 0x160]
test ecx, ecx
jne 0x41cd9f
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x108], 0
jmp 0x41cdda
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x108], 0
xor esi, esi
mov eax, dword [ebp - 0x120]
mov edi, dword [ebp - 0xf0]
sub eax, edi
mov dword [ebp - 0xfc], eax
push eax
push dword [ebp - 0x118]
call fcn.00418d84
pop eax
pop edx
xor edi, edi
mov eax, dword [ebp - 0x108]
test eax, eax
jne 0x41ef90
cmp dword [ebx + 0x3790], 0x3e8
je 0x41e803
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f7ea
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
cmp eax, 0x3e8
je 0x41ed70
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41e893
mov esi, dword [ebp - 0xe8]
cmp eax, esi
je 0x41e893
push 0xfbc
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push 0
push 2
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
sar edx, 7
sar ecx, 0x1f
sub edx, ecx
push edx
push dword [ebp - 0x124]
push esi
call fcn.0040e420
add esp, 0x20
push 0
push 0x2712
push esi
call fcn.0041a518
add esp, 0xc
mov eax, dword [ebp - 0xfc]
add eax, eax
add eax, eax
add eax, eax
bsr edx, dword [ebp - 0x6c]
not edx
add edx, dword [ebp - 0x74]
cmp eax, edx
jl 0x41ed70
mov eax, dword [ebx + 0x94]
cmp byte [ebp - 0x129], 0
je 0x41f8f4
cmp dword [ebx + 0x3790], 0x3e9
je 0x41fc77
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e420
mov edi, eax
add esp, 0x24
test eax, eax
js 0x41f933
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
cmp eax, 0x3e9
je 0x41fc31
mov esi, dword [ebx + 0x90]
mov eax, esi
cdq
idiv dword [ebp - 0xe0]
push dword [ebx + 0x3770]
mov ecx, dword [ebp - 0x110]
mov edx, eax
mov eax, dword [ebp - 0xe8]
call fcn.004197b4
pop ecx
mov esi, dword [ebp - 0x10c]
mov byte [esi], al
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xd8]
xor edx, eax
mov dword [ebx + 0x46d8], edx
mov edx, 0x3ea
mov esi, dword [ebp - 0x140]
test esi, esi
jne 0x41e980
mov edx, dword [ebx + 0x3790]
mov dword [ebx + 0x3794], edx
mov edx, dword [ebx + 0x3770]
mov dword [ebx + 0x3798], edx
mov esi, dword [ebp - 0xe0]
mov dword [ebx + 0x379c], esi
mov dword [ebx + 0x37ac], 0
mov edx, dword [ebx + 0xb8]
test edx, edx
je 0x41e9c8
mov esi, dword [ebp - 0x128]
or esi, dword [ebp - 0xc8]
jne 0x41f849
jmp 0x41e9c8
fstp st(0)
mov dword [ebx + 0x46cc], 0
mov edx, dword [ebp - 0x120]
add edx, edx
add edx, edx
add edx, edx
bsr eax, eax
not eax
add eax, dword [ebp - 0x74]
cmp edx, eax
jge 0x41edfb
mov eax, dword [ebp - 0x10c]
mov byte [eax + 1], 0
mov dword [ebx + 0x46d8], 0
mov edi, 1
mov eax, dword [ebp - 0xf0]
add eax, 1
add eax, edi
mov ecx, dword [ebx + 0x94]
test ecx, ecx
jne 0x41dc80
push dword [ebp - 0xe4]
push eax
push dword [ebp - 0x10c]
call fcn.0042157c
add esp, 0xc
test eax, eax
jne 0x41f933
mov eax, dword [ebp - 0xe4]
jmp 0x41dc80
mov dword [ebp - 0x144], 1
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
jmp 0x41c935
xor edx, edx
cmp eax, 0x3e7f
jle 0x41e287
mov eax, 0x7d00
mov esi, dword [ebp - 0xe8]
sub eax, esi
shl eax, 0xb
sub esi, 0x36b0
cdq
idiv esi
mov edx, 0x4000
sub edx, eax
jmp 0x41e287
movsb byte es:[edi], byte [esi]
jmp 0x41e222
movsw word es:[edi], word [esi]
jmp 0x41e21a
test edi, 1
jne 0x41fd65
test edi, 2
jne 0x41fd51
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41e212
mov edi, dword [ebp - 0x110]
lea ecx, [edi + edi]
add ecx, edi
add ecx, ecx
add ecx, ecx
add ecx, ecx
add ecx, edi
mov edi, ecx
shl edi, 4
sub edi, ecx
shl edi, 6
mov esi, dword [ebp - 0xe8]
cmp edi, esi
jl 0x41e0b0
mov ecx, 0x44e
test dl, dl
je 0x41e0b0
cmp eax, ecx
cmovl eax, ecx
mov dword [ebx + 0x46c8], eax
mov ecx, dword [ebx + 0x37a0]
cmp ecx, eax
cmovg ecx, eax
mov dword [ebx + 0x37a0], ecx
jmp 0x41ca2b
lea eax, [esi + esi]
mov dword [ebp - 0x124], eax
lea ecx, [eax + esi]
mov eax, ecx
imul edi
sar edx, 4
sar ecx, 0x1f
sub edx, ecx
cmp dword [ebp - 0xe0], edx
jg 0x41d93f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov edi, dword [ebx + 0x37a8]
test edi, edi
jne 0x41cd81
mov edi, 0x3e9
jmp 0x41e740
cmp dword [ebp - 0x120], 0xfffffc18
jne 0x41c994
mov ecx, 1
jmp 0x41c9ae
xor esi, esi
mov dword [ebx + 0x37a8], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x108], esi
jmp 0x41e30a
mov ecx, dword [ebp - 0xe8]
jmp 0x41c637
sub dword [ebp - 0x160], 0xfa0
jmp 0x41dd6f
add dword [ebp - 0x160], 0x1f40
jmp 0x41dd4b
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jg 0x41debb
mov edi, dword [ebp - 0x120]
mov dword [ebx + 0x3790], edi
lea ecx, [edi - 0x3e8]
mov dword [ebp - 0x140], 1
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 1
jmp 0x41c845
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41fbd3
mov edx, dword [0x454120]
mov eax, edx
neg eax
and eax, 3
add eax, edx
mov dword [ebp - 0x124], eax
mov esi, dword [ebx + 0x70]
mov eax, dword [ebx + 0x90]
mov dword [ebp - 0xfc], eax
mov ecx, eax
imul ecx, esi
mov eax, 0x51eb851f
imul ecx
sar edx, 7
mov eax, edx
mov edi, ecx
sar edi, 0x1f
sub eax, edi
lea ecx, [eax + eax]
add ecx, ecx
mov eax, dword [ebp - 0x124]
add eax, ecx
mov dword [0x454120], eax
jmp 0x41e429
mov eax, esi
imul ecx
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
jmp 0x41d93f
fstp st(2)
fxch st(1)
fldz
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x41d151
fmulp st(1)
jmp 0x41d153
push dword [ebp - 0x154]
push 0
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0x118]
push dword [ebp - 0xe0]
push dword [ebp - 0x134]
push dword [ebp - 0x148]
push dword [ebp - 0x130]
call fcn.004286d0
add esp, 0x20
test eax, eax
jne 0x41f933
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
je 0x41f405
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41ed9c
mov eax, dword [ebx + 0x46d4]
test eax, eax
jne 0x41ed9c
mov dword [ebx + 0x48], 1
mov eax, dword [ebx + 0x3770]
mov edi, dword [ebp - 0xdc]
test edi, edi
je 0x41edb1
mov edx, dword [ebx + 0xa0]
push eax
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
call fcn.00416a7c
pop ecx
mov dword [ebp - 0x13c], eax
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x108], eax
mov dword [ebx + 0x37a8], 1
mov dword [ebp - 0x150], 0
jmp 0x41e0f2
mov esi, dword [ebx + 0x90]
mov eax, dword [ebp - 0x150]
xor eax, 1
test dword [ebp - 0x108], eax
jne 0x41f0ac
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
jmp 0x41e92f
mov dword [ebx + 0x48], 0
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x41e0f2
mov dword [ebx + 0x46d8], 0
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xe0]
push dword [ebx + 0x3770]
mov ecx, dword [ebp - 0x110]
mov edx, eax
mov eax, esi
call fcn.004197b4
pop edi
mov ebx, dword [ebp - 0x10c]
mov byte [ebx], al
mov eax, dword [ebp - 0xf8]
mov dword [0x454120], eax
mov eax, 1
jmp 0x41c4d3
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41ea07
mov esi, dword [ebp - 0x108]
test esi, esi
jne 0x41ea07
cmp edi, 2
jle 0x41ea07
mov eax, dword [ebp - 0x10c]
jmp 0x41ee36
sub edi, 1
cmp edi, 2
je 0x41ea07
cmp byte [eax + edi], 0
je 0x41ee2a
jmp 0x41ea07
mov eax, 1
mov dword [ebp - 0x110], 0x44d
cmp edi, 0x3e9
jne 0x41ee5c
test al, al
jne 0x41ee9a
mov esi, dword [ebx + 0x90]
mov ecx, 0x51eb851f
mov eax, esi
imul ecx
sar edx, 4
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jge 0x41dfea
cmp edi, 0x3e8
je 0x41cd40
jmp 0x41d93f
mov dword [ebx + 0x3790], 0x3e8
mov esi, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
jmp 0x41cd40
imul eax, esi
add eax, eax
add eax, eax
neg edx
add edx, edx
add edx, edx
mov esi, dword [ebp - 0x100]
add esi, edx
cmp eax, 4
jae 0x41f825
test al, 2
je 0x41eeea
movsw word es:[edi], word [esi]
test al, 1
je 0x41e225
movsb byte es:[edi], byte [esi]
jmp 0x41e225
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c978
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41fb65
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
mov esi, dword [ebx + 0x90]
jmp 0x41cc4c
cmp eax, 0x44f
setle al
jmp 0x41ee50
cmp dword [ebx + 0x3770], 1
je 0x41f670
test ecx, ecx
je 0x41fb21
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
add eax, 0x11
mov esi, dword [ebp - 0x120]
lea ecx, [esi + esi]
add eax, 0x14
add ecx, ecx
add ecx, ecx
cmp eax, ecx
jg 0x41e2e0
push 0xc
push dword [ebp - 0x108]
push dword [ebp - 0x118]
call fcn.004188d4
add esp, 0xc
jmp 0x41e2cc
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f7ea
mov ecx, dword [ebp - 0x150]
test dword [ebp - 0x108], ecx
je 0x41e803
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a518
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a518
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0x24
push 0
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0xfc]
add eax, ecx
push eax
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
sar ecx, 0x1f
sub edx, ecx
push edx
push dword [ebp - 0x100]
push dword [ebp - 0xf4]
call fcn.0040e420
add esp, 0x18
test eax, eax
js 0x41f933
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a518
push 0xfbc
push dword [ebp - 0xf4]
call fcn.0041a518
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0x20
mov byte [ebp - 0x129], 1
cmp eax, 0x3e8
jne 0x41e82e
jmp 0x41e929
mov eax, 0x51eb851f
imul esi
mov eax, edx
sar eax, 6
sar esi, 0x1f
mov ecx, esi
sub eax, esi
mov esi, eax
sar edx, 7
sub edx, ecx
mov dword [ebp - 0xe8], edx
push 0xfbc
push dword [ebp - 0xf4]
call fcn.0041a518
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a518
push 0
push 0x2712
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0x20
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a518
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0x18
cmp dword [ebx + 0x3790], 0x3e9
mov edx, dword [ebp - 0xe8]
je 0x41fafc
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe0]
sub ecx, esi
push 0
push 2
lea eax, [ebp - 0xd0]
push eax
push edx
mov eax, ecx
mov dword [ebp - 0xfc], ecx
sub eax, edx
imul eax, dword [ebx + 0x70]
add eax, eax
add eax, eax
mov ecx, dword [ebp - 0x100]
add eax, ecx
push eax
push dword [ebp - 0xf4]
call fcn.0040e420
push 0
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0x15c]
mov edx, dword [ebp - 0xe8]
add eax, edx
push eax
push esi
mov eax, dword [ebp - 0xfc]
imul eax, dword [ebx + 0x70]
add eax, eax
add eax, eax
mov ecx, dword [ebp - 0x100]
add eax, ecx
push eax
push dword [ebp - 0xf4]
call fcn.0040e420
add esp, 0x30
test eax, eax
js 0x41f933
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
jmp 0x41e929
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x130], eax
jmp 0x41c70e
mov ecx, dword [ebp - 0xe0]
lea eax, [ecx + ecx]
add eax, ecx
add eax, eax
add eax, eax
add eax, eax
add eax, ecx
add eax, eax
mov ecx, dword [ebp - 0x124]
cmp eax, ecx
sete cl
movzx ecx, cl
push dword [ebp - 0x160]
push dword [ebx + 0x34]
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x114]
call fcn.00416b18
add esp, 0xc
mov dword [ebx + 0x24], eax
test esi, esi
jne 0x41d0be
mov esi, dword [ebp - 0x114]
sub eax, esi
mov dword [ebp - 0x114], eax
fld dword [0x4469f0]
fimul dword [ebp - 0x114]
fld qword [0x4469f8]
fmulp st(1)
sub esp, 8
fstp qword [esp]
call sub.MSVCR80.dll_exp
fstp dword [ebp - 0x114]
fld dword [ebp - 0x114]
fsubr dword [0x446980]
fstp dword [ebp - 0x114]
mov esi, dword [ebp - 0xe0]
mov eax, esi
shl eax, 5
sub eax, esi
add eax, eax
add eax, eax
add eax, esi
add eax, eax
add eax, eax
add eax, eax
cdq
idiv dword [ebp - 0x124]
pop esi
pop edx
cmp dword [ebp - 0x110], 0x44d
jne 0x41d227
mov dword [ebx + 0x20], eax
mov dword [ebx + 8], edi
mov eax, dword [ebp - 0x160]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x1c], 0x1f40
mov edx, dword [ebp - 0x148]
test edx, edx
sete al
sete cl
movzx ecx, cl
mov dword [ebp - 0x168], ecx
mov esi, dword [ebp - 0x120]
lea ecx, [esi + esi]
add ecx, ecx
add ecx, ecx
cmp dword [ebp - 0x13c], 1
setg dl
and dl, byte [ebp - 0x108]
mov byte [ebp - 0x164], dl
mov dword [ebx + 0x18], 0x3e80
mov dword [ebx + 0x14], 0x3e80
mov esi, dword [ebp - 0x168]
mov dword [ebx + 0x3c], esi
cmp byte [ebp - 0x164], 0
je 0x41f958
mov esi, dword [ebp - 0x13c]
lea edx, [esi + esi]
add edx, edx
add edx, edx
sub ecx, edx
sub ecx, 0x15
mov dword [ebx + 0x40], ecx
test al, al
je 0x41f963
mov eax, dword [ebp - 0xe0]
imul eax, dword [ebx + 0x24]
cdq
idiv dword [ebp - 0x124]
cmp eax, ecx
cmovg eax, ecx
mov dword [ebx + 0x40], eax
jmp 0x41d33e
fld dword [ebx + 0x3788]
mov ecx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe0]
fld dword [ecx + eax*8]
fld dword [ecx + eax*8 + 4]
fld st(1)
fsub st(4)
fld st(1)
fsub st(4)
fxch st(5)
fmul st(6)
fxch st(3)
fmul st(7)
fadd dword [0x4469e8]
faddp st(3)
fxch st(3)
fmul st(5)
fxch st(1)
fmul st(6)
fadd dword [0x4469e8]
faddp st(1)
fxch st(2)
fstp dword [edx + eax*8]
fxch st(2)
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp edi, eax
jg 0x41f390
fstp st(3)
fstp st(1)
fstp dword [ebx + 0x3780]
fstp dword [ebx + 0x3788]
jmp 0x41cf72
lea ecx, [edi - 0x3e8]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 0
jmp 0x41c845
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
je 0x41fa81
cmp eax, 0x2ee0
je 0x41fb56
cmp eax, 0x3e80
mov eax, 0x44f
cmovne eax, dword [ebp - 0x110]
mov dword [ebp - 0x110], eax
jmp 0x41ecf6
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
xor esi, esi
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xf0], 0
jmp 0x41cbf3
mov dword [ebp - 0xd0], 0
mov esi, dword [ebx + 0xac]
mov edx, 0x51eb851f
mov eax, dword [ebp - 0x124]
imul edx
sar edx, 7
mov eax, dword [ebp - 0x124]
sar eax, 0x1f
sub eax, edx
lea ecx, [ebx + 0x37c8]
mov dword [ebp - 0x14c], esi
sub esi, dword [ebx + 0x74]
mov dword [ebp - 0x158], eax
add esi, eax
imul esi, edi
add esi, esi
add esi, esi
mov dword [ebp - 0xfc], ecx
lea edx, [ecx + esi]
mov ecx, dword [ebp - 0xd4]
mov ecx, dword [ecx + 4]
push dword [ebp - 0x124]
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x3c]
push edi
mov eax, dword [ebp - 0x158]
neg eax
push eax
push 0x3f800000
push 0
mov eax, edx
call fcn.004196a0
push esi
push 0
push dword [ebp - 0xfc]
call sub.MSVCR80.dll_memset
mov esi, dword [ebp - 0x14c]
imul esi, edi
mov edx, esi
add esp, 0x24
test esi, esi
jle 0x41f559
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x134]
add edx, edx
add edx, edx
add edx, esi
jmp 0x41f541
fstp st(1)
fld dword [0x4469c8]
fcomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
fstp dword [ebp - 0xfc]
cvtss2si ecx, dword [ebp - 0xfc]
mov word [eax], cx
add esi, 4
add eax, 2
cmp edx, esi
je 0x41f559
fld dword [0x446984]
fmul dword [esi]
fld dword [0x4469c4]
fxch st(1)
fcomi st(1)
ja 0x41f518
fstp st(0)
jmp 0x41f526
push dword [ebp - 0x154]
push dword [ebp - 0x144]
lea eax, [ebp - 0xd0]
push eax
push 0
push dword [ebp - 0x14c]
push dword [ebp - 0x134]
push dword [ebp - 0x148]
push dword [ebp - 0x130]
call fcn.004286d0
mov dword [ebx + 0x48], 0
add esp, 0x20
jmp 0x41d355
mov esi, 0x1f40
jmp 0x41d23e
push 0x3c
call fcn.00437cbc
shl eax, 8
mov ecx, eax
pop esi
jmp 0x41ce9a
fld dword [ebp - 0xac]
jmp 0x41d489
push 0x1d4c0
call sub.MSVCR80.dll_malloc
mov dword [ebp - 0xe8], eax
mov dword [0x454124], eax
pop eax
jmp 0x41d982
fld dword [0x4469d0]
fmul dword [ebx + 0x46d0]
fstp dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
imul esi, dword [ebx + 0x70]
mov eax, dword [ebx + 0xb4]
and eax, 7
push esi
mov edi, dword [ebp - 0x104]
push edi
push edi
call dword [eax*4 + 0x447320]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
fld dword [ebp - 0xe8]
fcompi st(1)
fstp st(0)
jbe 0x41fa9a
fld dword [0x4469d0]
fmul dword [ebx + 0x46d0]
fstp dword [ebx + 0x46d0]
jmp 0x41dcae
cmp esi, 0x3e80
jg 0x41ca10
mov eax, dword [ebx + 0x37a0]
cmp eax, 0x44f
jle 0x41c9ea
jmp 0x41cc7e
xor esi, esi
jmp 0x41e79b
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jg 0x41fb9a
cmp eax, 0x3e7f
jg 0x41ea6d
mov dword [ebx + 0x5c], 0
test ecx, ecx
jne 0x41e29e
cmp dword [ebx + 0x70], 2
jne 0x41e292
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f6cb
cmp dword [ebp - 0xf0], 0x3fff
jg 0x41e292
mov word [ebp - 0xe8], ax
fild word [ebp - 0xe8]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0x3c]
mov eax, 0xbb80
xor edx, edx
idiv dword [ebx + 0x90]
mov esi, eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 4]
cdq
idiv esi
mov dword [ebp - 0xfc], eax
fld dword [0x446a04]
fmul st(1), st(0)
fld1
fsubr st(2), st(0)
fxch st(1)
fimul dword [ebp - 0xf0]
fsubp st(1)
mov dword [ebp - 0xe8], eax
test eax, eax
jle 0x41fdb3
add esi, esi
add esi, esi
mov edx, ecx
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xe8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
add ecx, eax
fld dword [edx]
fmul st(0)
fld dword [eax]
fld dword [eax + 4]
fld st(1)
fsub st(1)
fmul dword [0x446988]
fld1
fsub st(4)
fmul st(6)
fxch st(4)
fmul st(5)
faddp st(4)
fmulp st(3)
fxch st(1)
fsub st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add edx, esi
add eax, 8
cmp eax, ecx
jne 0x41f746
fstp st(1)
mov esi, dword [ebp - 0xe8]
cmp dword [ebp - 0xe0], esi
jle 0x41f7d5
mov eax, dword [ebp - 0xfc]
add eax, eax
add eax, eax
add eax, eax
mov esi, dword [ebp - 0x100]
add eax, esi
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + ecx]
add edx, edx
add edx, edx
add edx, esi
fld dword [eax]
fld dword [eax + 4]
fld st(1)
fsub st(1)
fmul dword [0x446988]
fmul st(3)
fsub st(2), st(0)
fxch st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add eax, 8
cmp eax, edx
jne 0x41f7ae
fstp st(0)
jmp 0x41f7d7
fstp st(0)
movzx eax, word [ebp - 0xf0]
mov word [ebx + 0x3774], ax
jmp 0x41e292
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xd0]
push eax
push 0x272c
push dword [ebp - 0xf4]
call fcn.0041a518
add esp, 0xc
jmp 0x41efba
mov esi, 0x11
jmp 0x41e79b
test edi, 1
jne 0x41fd92
test edi, 2
jne 0x41fd7e
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41eee4
mov edx, dword [ebx + 0xb4]
mov ecx, dword [ebx + 0x70]
fld dword [ebx + 0x46d0]
fld dword [ebp - 0xa4]
mov esi, dword [ebp - 0x128]
test esi, esi
jne 0x41f8c1
fld dword [0x4469cc]
fcompi st(1)
fstp st(0)
jbe 0x41e9c6
fstp dword [ebp - 0xf4]
mov esi, dword [ebp - 0xe0]
imul esi, ecx
and edx, 7
push esi
mov eax, dword [ebp - 0x104]
push eax
push eax
call dword [edx*4 + 0x447320]
mov dword [ebp - 0xe8], esi
fidiv dword [ebp - 0xe8]
fmul dword [0x446a08]
add esp, 0xc
fld dword [ebp - 0xf4]
fcompi st(1)
fstp st(0)
jb 0x41fde9
jmp 0x41f8c5
fstp st(0)
fstp st(0)
mov eax, dword [ebx + 0x46cc]
add eax, 1
mov dword [ebx + 0x46cc], eax
cmp eax, 0xa
jle 0x41f8ec
cmp eax, 0x1e
jle 0x41fc0f
mov dword [ebx + 0x46cc], 0xa
mov eax, dword [ebp - 0x6c]
jmp 0x41e9d2
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e420
mov edi, eax
add esp, 0x24
test eax, eax
jns 0x41ed70
mov eax, dword [ebp - 0xf8]
mov dword [0x454120], eax
mov eax, 0xfffffffd
jmp 0x41c4d3
fldz
fchs
jmp 0x41c337
xor eax, eax
jmp 0x41c854
mov dword [ebx + 0x40], ecx
test al, al
jne 0x41f360
mov edx, dword [ebp - 0xe0]
lea eax, [edx + edx]
add eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, edx
add eax, eax
mov esi, dword [ebp - 0x124]
cmp eax, esi
sete al
movzx eax, al
mov esi, eax
mov eax, dword [ebp - 0x124]
imul eax, ecx
mov ecx, edx
cdq
idiv ecx
push dword [ebp - 0x160]
push dword [ebx + 0x34]
push dword [ebp - 0x148]
mov ecx, esi
mov edx, dword [ebp - 0x110]
call fcn.00416b18
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
imul eax, ecx
cdq
idiv dword [ebp - 0x124]
mov dword [ebx + 0x40], eax
jmp 0x41d33e
push 1
push dword [ebp - 0x150]
push dword [ebp - 0x118]
call fcn.004188d4
mov edi, dword [ebx + 0x3790]
add esp, 0xc
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
cmp edi, 0x3e9
je 0x41fce4
add eax, 7
sar eax, 3
mov edx, dword [ebp - 0x120]
sub edx, eax
mov eax, dword [ebp - 0x13c]
cmp edx, eax
cmovg edx, eax
mov eax, 2
cmp edx, eax
cmovge eax, edx
mov esi, eax
mov eax, 0x101
cmp esi, eax
cmovle eax, esi
mov dword [ebp - 0xf0], eax
jmp 0x41e2fe
push 1
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push dword [ebx + 0x98]
push 0xfb4
push esi
call fcn.0041a518
push dword [ebx + 0xa0]
push 0xfa2
push esi
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x24
jmp 0x41e3ce
mov dword [ebp - 0x110], 0x44d
jmp 0x41ecf6
mov eax, 0xffffffff
jmp 0x41c4d3
mov esi, dword [ebp - 0xe0]
imul esi, dword [ebx + 0x70]
mov eax, dword [ebx + 0xb4]
and eax, 7
push esi
mov edi, dword [ebp - 0x104]
push edi
push edi
call dword [eax*4 + 0x447320]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
jmp 0x41f63c
mov ecx, 0x44d
jmp 0x41eafb
and ecx, 1
jne 0x41fdd6
test edi, 2
jne 0x41fdc2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41e493
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xe8], edi
push edi
push dword [ebp - 0x118]
call fcn.00418d84
pop eax
pop edx
mov edx, dword [ebp - 0xfc]
jmp 0x41f14c
cmp dword [ebx + 0x70], 2
jne 0x41ef51
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f6cb
cmp esi, 0x3fff
jle 0x41f6cb
jmp 0x41e29e
mov dword [ebp - 0x110], 0x44e
jmp 0x41ecf6
mov ecx, 1
mov esi, dword [ebx + 0x90]
jmp 0x41cc4c
lea ecx, [edx + edx]
add ecx, edx
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
sar ecx, 0x1f
sub eax, ecx
mov ecx, dword [ebp - 0x164]
add eax, ecx
mov dword [ebx + 0x24], eax
jmp 0x41d1ef
mov dword [ebx + 0x5c], 0x4000
test ecx, ecx
jne 0x41ef51
cmp dword [ebx + 0x70], 2
jne 0x41ef51
movzx eax, word [ebx + 0x3774]
mov dword [ebp - 0xf0], 0x4000
cmp ax, 0x3fff
jg 0x41e29e
jmp 0x41f6cb
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a518
push 0
push 0xfb4
push esi
call fcn.0041a518
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
jmp 0x41e3ce
mov dword [ebx + 0x46d8], 0
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xe0]
mov esi, dword [ebx + 0x3790]
jmp 0x41edc8
mov ecx, dword [ebx + 0x94]
test ecx, ecx
je 0x41e929
push dword [ebp - 0xf0]
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x15c]
add eax, esi
push eax
lea eax, [esi + edi]
push eax
call sub.MSVCR80.dll_memmove
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
mov esi, dword [ebx + 0x90]
jmp 0x41e92f
test eax, eax
je 0x41e8d3
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a518
mov eax, dword [ebx + 0x94]
add esp, 0xc
jmp 0x41e8d3
fld dword [0x4469a4]
fld dword [0x4469a8]
mov eax, 0xd
jmp 0x41d10d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41deff
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41def3
add eax, 0x12
sar eax, 3
mov edx, dword [ebp - 0x120]
sub edx, eax
mov eax, dword [ebp - 0x13c]
cmp edx, eax
cmovg edx, eax
mov eax, 2
cmp edx, eax
cmovge eax, edx
mov esi, eax
mov eax, 0x101
cmp esi, eax
cmovle eax, esi
mov dword [ebp - 0xf0], eax
push 0x100
sub eax, 2
push eax
push dword [ebp - 0x118]
call fcn.00418db4
mov edi, dword [ebx + 0x3790]
add esp, 0xc
jmp 0x41e2fe
fld dword [0x4469b4]
fld dword [0x4469b8]
mov eax, 0xf
jmp 0x41d10d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41eab7
movzx ecx, byte [esi]
mov byte [ebp - 0xf0], cl
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41eaab
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41f83d
movzx ecx, byte [esi]
mov byte [ebx + 0x37c8], cl
lea edi, [ebx + 0x37c9]
add esi, 1
sub eax, 1
jmp 0x41f831
fldz
jmp 0x41d18b
fstp st(1)
xor eax, eax
mov dword [ebp - 0xfc], eax
jmp 0x41f78b
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41faf0
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41fae4
mov eax, dword [ebp - 0x6c]
jmp 0x41e9c8
mov esi, dword [ebx + 0x90]
mov ecx, 0x32
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0xfc], eax
jmp 0x41cd40
cmp edi, 0x3ea
sete dl
mov eax, edi
mov edi, dword [ebp - 0xf0]
jmp 0x41c450