Function at 0x41bf90
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 [0x4534ec]
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x41d444
mov eax, dword [ebp - 0xf8]
mov dword [0x4534ec], 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 0x41faa0
cmp esi, 1
je 0x41c4ef
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 0x41c511
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.0041a528
mov dword [ebp - 0xc8], 0
add esp, 0xc
cmp dword [ebx + 0x2c], 6
jg 0x41c2e2
mov eax, dword [ebx + 0x1de0]
mov dword [ebp - 0x128], eax
test eax, eax
jne 0x41c57d
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 0x41c520
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
je 0x41c55a
cmp edi, 0xffffffff
jne 0x41c175
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 0x41c277
mov edi, dword [ebp - 0xe4]
cmp edi, 2
jle 0x41c22b
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 0x41c22f
imul edi, edx
mov dword [ebp - 0x14c], edi
cmp edx, 0x31
jg 0x41c5f0
cmp edi, 0x12b
jle 0x41cb1e
cmp ecx, 0x95f
jle 0x41cb22
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 0x41c647
fstp st(0)
jmp 0x41c231
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 0x41c43b
cmp dword [ebp - 0xf0], 0x64
jle 0x41cb80
mov dword [ebp - 0xe0], 0
xor esi, esi
mov edx, 1
mov eax, 0x3ea
jmp 0x41c460
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 0x41c1a6
mov edx, dword [ebx + 0x90]
cmp edx, 0x3e7f
jle 0x41c0e6
mov ecx, dword [ebp - 0xe0]
imul ecx, dword [ebx + 0x70]
test ecx, ecx
jle 0x41f958
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 0x41c31e
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.004265b8
add esp, 0x30
fld dword [ebp - 0x128]
fld dword [ebp - 0x120]
fcompi st(1)
fstp st(0)
jb 0x41dca8
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 0x41c12c
cmp dword [ebx + 0x7c], 0xfffffc18
je 0x41d485
mov eax, dword [ebp - 0xa8]
cmp eax, 0xc
jg 0x41c5c1
mov edx, 0x44d
mov dword [ebx + 0x46c8], edx
jmp 0x41c12c
cmp dword [ebp - 0xf0], 0x64
jle 0x41cb3d
xor esi, esi
mov edx, 1
mov dword [ebp - 0xe0], 0
xor edi, edi
mov eax, 0x3ea
cmp ecx, 0x44e
jne 0x41d46b
test dl, dl
je 0x41d46b
mov eax, 0x3ea
mov ecx, 0x44d
push dword [ebx + 0x3770]
mov edx, dword [ebp - 0xfc]
call fcn.004197c4
pop ecx
or eax, esi
mov esi, dword [ebp - 0x10c]
mov byte [esi], al
mov eax, 1
cmp edi, 1
jle 0x41c4c9
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 0x41cc31
mov esi, dword [ebp - 0xf8]
mov dword [0x4534ec], 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 0x41c07e
mov eax, 0xfffffffe
jmp 0x41c4e3
mov dword [ebp - 0x11c], 0
jmp 0x41c0a7
cmp dword [ebx + 0x78], 1
je 0x41c146
fstp st(0)
lea eax, [ebx + 0x37b4]
push eax
push esi
push dword [ebp - 0xe0]
push dword [ebp - 0x104]
call fcn.00416c3c
add esp, 0x10
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
jne 0x41c158
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 0x41c175
lea eax, [ebx + 0xbc]
push eax
call fcn.004412b8
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 0x41c3f7
mov edx, 0x44e
cmp eax, 0xe
jle 0x41c430
mov edx, 0x44f
cmp eax, 0x10
jle 0x41c430
xor edx, edx
cmp eax, 0x12
setg dl
add edx, 0x450
jmp 0x41c430
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 0x41eba7
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 0x41c663
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 0x41dbb4
cmp eax, 0xbba
je 0x41de46
mov edx, dword [ebx + 0x8c]
test edx, edx
js 0x41df56
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 0x41c6fe
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 0x41d766
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 0x41c753
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 0x41c76f
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 0x41c797
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 0x41c7f5
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
je 0x41dce4
fstp st(0)
mov dword [ebx + 0x3790], eax
cmp eax, 0x3ea
je 0x41c801
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 0x41c801
jmp 0x41c7f7
fstp st(0)
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x140], eax
test eax, eax
je 0x41d4d1
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebp - 0x120]
test eax, eax
jg 0x41debb
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 0x41d521
mov dword [ebx + 0x44], eax
mov esi, dword [ebp - 0xf0]
cmp esi, 0x32
jle 0x41c894
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 0x41c8c2
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 0x41d715
cmp edi, 0x3ea
je 0x41de55
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 0x41dc03
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 0x41d573
mov esi, dword [ebx + 0x54]
test esi, esi
jne 0x41d573
mov eax, dword [ebp - 0x124]
cmp dword [ebx + 0x37a0], eax
jle 0x41eb74
mov eax, dword [ebp - 0x124]
mov dword [ebx + 0x37a0], eax
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41dcda
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
cmp edi, 0x3ea
je 0x41cc56
mov esi, dword [ebx + 0x90]
cmp dword [ebp - 0x158], 0x3a97
jg 0x41cc5c
mov eax, dword [ebx + 0x37a0]
mov edx, 0x44f
cmp eax, edx
cmovg eax, edx
mov dword [ebx + 0x37a0], eax
cmp esi, 0x5dc0
jg 0x41ca20
cmp esi, 0x3e80
jg 0x41ca20
cmp esi, 0x2ee0
jg 0x41ca20
cmp eax, 0x44f
je 0x41cca4
cmp esi, 0x1f40
jg 0x41ca20
cmp eax, 0x44d
jg 0x41ccba
mov eax, dword [ebx + 0x46c8]
cmp edi, 0x3ea
sete dl
test eax, eax
je 0x41ca3b
test cl, cl
jne 0x41e094
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 0x41ccd5
test dl, dl
jne 0x41ccd5
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 0x41cb00
test esi, esi
jne 0x41ca94
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 0x41df4c
cmp dword [ebp - 0xfc], 5
jle 0x41ccd5
cmp edi, 0x44d
jle 0x41ccc9
sub edi, 1
mov dword [ebx + 0x37a0], edi
mov ecx, dword [edi*8 + 0x446a98]
mov eax, dword [edi*8 + 0x446a9c]
cmp esi, 1
jne 0x41ca8e
sub ecx, eax
jmp 0x41ca94
fstp st(0)
jmp 0x41cb24
fstp st(0)
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x37a0]
test ecx, ecx
jne 0x41cb7c
mov ecx, 0x44d
test edi, edi
je 0x41cb80
cmp dword [ebp - 0xf0], 0x19
jne 0x41cb85
cmp edi, 0x3e8
je 0x41cb85
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 0x41c460
test edi, edi
jne 0x41cb3d
mov edi, 0x3e8
cmp dword [ebp - 0xf0], 0x10
jg 0x41f44a
cmp dword [ebp - 0x100], 1
je 0x41cbc4
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
movzx eax, byte [ebp - 0xe8]
cmp dword [ebp - 0xf0], 0xa
je 0x41df1b
test al, al
je 0x41df1b
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 0x41fe1c
cmp byte [ebp - 0xe8], 0
je 0x41fe1c
mov edi, dword [ebp - 0xf0]
mov eax, 0x3e8
mov ecx, 0x44f
jmp 0x41c47e
mov esi, dword [ebp - 0xe4]
push esi
push eax
push dword [ebp - 0x10c]
call fcn.0042158c
add esp, 0xc
test eax, eax
mov eax, 0xfffffffd
cmove eax, esi
jmp 0x41c4d7
mov esi, dword [ebx + 0x90]
cmp esi, 0x5dc0
jg 0x41ca20
cmp dword [ebx + 0x37a0], 0x450
jle 0x41f657
mov dword [ebx + 0x37a0], 0x450
cmp esi, 0x3e80
jg 0x41ca20
mov dword [ebx + 0x37a0], 0x44f
cmp esi, 0x2ee0
jg 0x41ca20
mov dword [ebx + 0x37a0], 0x44e
cmp esi, 0x1f40
jg 0x41ca20
mov dword [ebx + 0x37a0], 0x44d
jmp 0x41ca20
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.0041a528
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
je 0x41d7e9
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x41d8f2
mov dword [ebx + 0x37a0], 0x44d
cmp edi, 0x3e8
jne 0x41ee51
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 0x41e035
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x37a8]
test eax, eax
je 0x41e74b
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.00416a8c
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.00418cb0
mov edx, dword [0x4534ec]
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 [0x4534ec], 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 0x41defa
test al, 2
je 0x41ce89
movsw word es:[edi], word [esi]
test al, 1
je 0x41ce8e
movsb byte es:[edi], byte [esi]
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
je 0x41f5b4
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.00437d84
pop edx
cmp dword [ebx + 0x6c], 0x800
mov esi, dword [ebx + 0x70]
mov edx, dword [ebp - 0x11c]
je 0x41e4b6
imul edx, esi
add edx, edx
add edx, edx
mov eax, dword [ebp - 0x100]
add edx, eax
fld dword [0x44617c]
fidiv dword [ebx + 0x90]
fld1
fsub st(1)
fld dword [ebx + 0x3780]
xor eax, eax
cmp esi, 2
je 0x41f38e
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 [0x446178]
faddp st(1)
fxch st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp edi, eax
jg 0x41cf4b
fstp st(1)
fstp st(1)
fstp dword [ebx + 0x3780]
jmp 0x41cf82
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edi, dword [ebp - 0x114]
test edi, edi
je 0x41cfd6
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 + 0x446ac0]
add esp, 0xc
fld dword [0x446120]
fcompi st(1)
jbe 0x41d3e4
fucompi st(0)
jp 0x41d3e6
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xfc], eax
cmp eax, 0x3ea
je 0x41e0fa
mov eax, dword [0x4534ec]
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 [0x4534ec], eax
mov dword [ebp - 0x154], 0xffffffff
mov esi, dword [ebp - 0xc8]
test esi, esi
je 0x41d044
fld dword [0x44615c]
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 0x41f217
mov eax, dword [ebp - 0x114]
mov dword [ebx + 0x24], eax
test esi, esi
je 0x41d1ff
mov ecx, dword [ebp - 0x148]
test ecx, ecx
je 0x41d1ff
mov edx, dword [ebx + 0xb0]
test edx, edx
jne 0x41d1ff
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x114], eax
cmp eax, 0x44d
je 0x41fcb7
cmp eax, 0x44e
je 0x41fd4b
fld dword [0x44613c]
fld dword [0x446140]
mov eax, 0x11
test edi, edi
jle 0x41fdbc
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 0x41d16c
fld dword [0x446150]
fxch st(2)
fcomi st(2)
ja 0x41ec9e
fstp st(0)
fstp st(0)
jmp 0x41d163
fstp st(1)
faddp st(1)
add eax, 4
cmp edx, eax
je 0x41d18b
fld dword [eax]
fld dword [0x446118]
fcomi st(1)
ja 0x41d14b
fstp st(0)
fstp st(0)
fld dword [0x44614c]
faddp st(1)
add eax, 4
cmp edx, eax
jne 0x41d16c
add edx, 0x54
add ecx, 0x15
cmp ecx, esi
jne 0x41d145
mov edi, dword [ebp - 0x164]
fdivrp st(1)
mov dword [ebp - 0x164], edi
fimul dword [ebp - 0x164]
fadd dword [0x446190]
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 0x41fb85
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 0x41f5aa
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 0x41f32f
mov dword [ebx + 0x18], 0x1f40
mov dword [ebx + 0x14], 0x3e80
cmp dword [ebp - 0xfc], 0x3e8
jne 0x41d322
cmp dword [ebp - 0xf0], 0x32
jle 0x41d2ea
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 0x41d322
mov dword [ebx + 0x14], 0x2ee0
mov eax, 0x2ee0
cmp esi, eax
cmovle eax, esi
mov dword [ebx + 0x1c], eax
cmp edx, 0x1b57
jg 0x41d322
mov dword [ebx + 0x14], 0x1f40
mov dword [ebx + 0x1c], 0x1f40
cmp byte [ebp - 0x164], 0
je 0x41d342
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 0x41f472
mov ecx, dword [ebx + 0x70]
mov esi, dword [ebp - 0xe0]
imul esi, ecx
test esi, esi
jle 0x41ecb7
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 0x41d3cc
fstp st(1)
fld dword [0x446158]
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 0x41ecb7
fld dword [0x446114]
fmul dword [eax]
fld dword [0x446154]
fxch st(1)
fcomi st(1)
ja 0x41d39f
fstp st(0)
jmp 0x41d3ad
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 0x41cfd6
mov dword [ebp - 0xe4], edx
push 0x1d4c0
call sub.MSVCR80.dll_malloc
mov dword [ebp - 0xf8], eax
mov dword [0x4534f0], eax
pop esi
mov edx, dword [ebp - 0xe4]
jmp 0x41c026
cmp eax, 0x3e9
jne 0x41c47e
mov edx, 0x450
cmp ecx, edx
cmovl ecx, edx
jmp 0x41c47e
mov eax, dword [ebx + 0x3794]
test eax, eax
jne 0x41dc75
fld dword [ebp - 0xb4]
fsubr dword [0x446110]
fmul dword [0x446164]
fadd dword [0x446118]
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 0x41c41c
mov edi, dword [ebx + 0x3790]
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41f3f6
cmp edi, 0x3ea
je 0x41debb
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 0x41c864
cmp dword [ebx + 0x3798], 2
jne 0x41c864
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x41f961
cmp edi, 0x3ea
je 0x41c864
cmp dword [ebp - 0x120], 0x3ea
je 0x41c864
mov dword [ebx + 0x3770], 2
mov eax, 1
mov dword [ebp - 0x130], 2
jmp 0x41c864
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 0x41dbc3
mov edx, 0x44d6c0
mov eax, 0x44d6e0
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 0x41d664
cmp dword [ebx + 0x37a4], eax
jl 0x41d6fb
sub edx, esi
mov esi, dword [ebp - 0xe8]
cmp edx, esi
jle 0x41dbe6
sub eax, 1
cmp eax, 0x44d
jne 0x41d644
mov ecx, edi
mov edi, dword [ebp - 0x110]
mov dword [ebx + 0x37a4], eax
mov dword [ebx + 0x37a0], eax
test ecx, ecx
jne 0x41d702
cmp edi, 0x3ea
je 0x41ef08
mov edx, dword [ebx + 0x58]
test edx, edx
jne 0x41d6eb
cmp eax, 0x44f
jle 0x41d6eb
mov dword [ebx + 0x37a0], 0x44f
cmp dword [ebp - 0x124], 0x44e
jle 0x41c988
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41eb84
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
jmp 0x41c9be
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c988
jmp 0x41d6c8
add edx, esi
jmp 0x41d664
mov esi, dword [ebp - 0x124]
cmp eax, esi
jle 0x41c994
jmp 0x41c988
cmp dword [ebp - 0x144], 1
jg 0x41d738
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 0x41c92b
cmp dword [ebp - 0x110], 2
jne 0x41f206
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 0x41d7a6
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 0x41c71e
mov esi, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], esi
mov eax, dword [ebx + 0xb0]
cmp esi, 0x44e
jne 0x41d817
mov dword [ebx + 0x37a0], 0x44f
mov dword [ebp - 0x110], 0x44f
test eax, eax
je 0x41d82f
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 0x41d94f
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 0x41d94f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov esi, dword [ebx + 0x37a8]
test esi, esi
je 0x41e750
mov dword [ebx + 0x37a8], 0
cmp edi, 0x3ea
jne 0x41cd9b
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 0x41cdea
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], eax
cmp edi, 0x3e8
jne 0x41ef3f
cmp dword [ebp - 0x110], 0x44f
jle 0x41fe01
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 0x41eb2c
mov eax, dword [ebp - 0xe0]
cdq
idiv dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x134]
cmp eax, 0xffffffff
je 0x41d97f
mov dword [ebx + 0x1dd4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebx + 0x1dd8], eax
mov eax, dword [0x4534ec]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x41f5d1
mov eax, dword [ebp - 0xe4]
cmp eax, 2
je 0x41dff0
lea edi, [eax + eax]
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41da01
cmp dword [ebx + 0xa4], 0xffffffff
je 0x41da01
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 [0x4534ec], eax
push edx
mov dword [ebp - 0xf0], edx
call fcn.00421e44
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 0x41dccf
mov dword [ebx + 0x78], 1
mov eax, dword [ebp - 0xe4]
test eax, eax
jle 0x41df86
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 0x41db78
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.0041bf90
add esp, 0x34
test eax, eax
js 0x41dc8b
push eax
push ebx
push dword [ebp - 0xe8]
call fcn.00421d80
add esp, 0xc
test eax, eax
js 0x41dc8b
add esi, 1
mov eax, dword [ebp - 0xe0]
add ebx, eax
cmp dword [ebp - 0xe4], esi
je 0x41df78
mov dword [edi + 0x44], 0
mov ecx, dword [ebp - 0xf0]
xor eax, eax
cmp esi, ecx
setl al
mov dword [edi + 0x46d4], eax
jne 0x41dafe
cmp byte [ebp - 0xf4], 0
je 0x41dafe
mov dword [edi + 0x88], 0x3ea
jmp 0x41dafe
mov dword [ebp - 0x13c], 0x7f
jmp 0x41c6fe
cmp dword [ebx + 0x78], 1
mov edx, 0x44d6c0
mov eax, 0x44f780
cmovne edx, eax
mov eax, 0x44d6e0
mov esi, 0x44f7a0
cmovne eax, esi
jmp 0x41d59f
mov ecx, edi
mov edi, dword [ebp - 0x110]
cmp eax, 0x44e
jne 0x41d684
mov eax, 0x44f
jmp 0x41d684
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
push eax
push dword [ebx + 0xb4]
push dword [ebp - 0x130]
call fcn.00429cec
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
jne 0x41ea58
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 0x41d588
cmp eax, 0x3ea
je 0x41f5c6
fld dword [ebp - 0xb0]
jmp 0x41d499
mov eax, 0xfffffffd
mov ebx, dword [ebp - 0xf8]
mov dword [0x4534ec], ebx
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
fld dword [0x44615c]
fld dword [ebp - 0xa4]
fcompi st(1)
fstp st(0)
ja 0x41f5ec
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x120], eax
jmp 0x41c5aa
mov dword [ebx + 0x3798], eax
jmp 0x41dab5
mov ecx, 1
jmp 0x41c9b2
fld1
fsub st(1)
fld dword [0x446168]
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 [0x44616c]
fxch st(1)
fmul dword [0x446170]
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 0x41ebc1
cmp dword [ebp - 0x120], 0x3ea
je 0x41ebb2
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41dd7f
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 0x41ddea
mov eax, 0x80
mov edi, dword [ebp - 0x13c]
sub eax, edi
sar eax, 4
cmp eax, ecx
jge 0x41ddea
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0x13c], 0x64
jle 0x41de06
test byte [ebp - 0x140], 1
je 0x41de06
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 0x41c7f7
mov eax, dword [ebx + 0x3790]
jmp 0x41c7d1
mov dword [ebp - 0x13c], 0
jmp 0x41c6fe
cmp dword [ebp - 0x144], 4
jg 0x41de82
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 0x41d588
cmp dword [ebp - 0x120], 0x3ea
jne 0x41ebd0
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 0x41c855
and ecx, 1
jne 0x41fce1
test edi, 2
jne 0x41fccd
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41ce83
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 0x41cc03
mov eax, 1
jmp 0x41ccd7
cmp dword [ebp - 0x150], 0x800
mov edx, 0x30
mov eax, 0x73
cmovne eax, edx
mov dword [ebp - 0x13c], eax
jmp 0x41c6fe
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.00421e50
add esp, 0x1c
test eax, eax
mov ecx, dword [ebp - 0xe0]
js 0x41dc8b
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 0x41dc90
mov edi, 3
jmp 0x41d9a4
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 0x41d889
cmp edi, 0x3e8
jne 0x41d94f
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 0x41ec85
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 0x41d94f
mov ecx, edx
sar ecx, 4
sub ecx, edi
mov dword [ebp - 0xfc], ecx
jmp 0x41d94f
mov esi, dword [ebx + 0x3770]
mov dword [ebp - 0x110], esi
imul ecx, esi, 0x4650
mov esi, dword [ebp - 0xe8]
cmp ecx, esi
jl 0x41ead3
cmp edi, 0x3ea
je 0x41fae1
imul edi, dword [ebp - 0x110], 0x7530
mov ecx, 0x44f
mov esi, dword [ebp - 0xe8]
cmp edi, esi
jge 0x41eb0b
imul ecx, dword [ebp - 0x110], 0xabe0
cmp ecx, esi
setl cl
movzx ecx, cl
add ecx, 0x450
jmp 0x41eb0b
fld1
fstp dword [ebp - 0x114]
mov eax, dword [ebp - 0x110]
lea edx, [eax - 0x44d]
mov eax, 0x15
cmp edx, 3
ja 0x41e11f
mov eax, dword [edx*4 + 0x447f20]
push eax
push 0x271c
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
push dword [ebx + 0x3770]
push 0x2718
push esi
call fcn.0041a528
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0041a528
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41e391
mov edx, dword [0x4534ec]
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 [0x4534ec], 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 0x41eed6
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 0x41eaaf
test al, 2
jne 0x41eaa8
test al, 1
jne 0x41eaa2
add esp, 0xc
fld dword [ebx + 0x377c]
fld1
fcomi st(1)
ja 0x41e353
fld dword [ebp - 0x114]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x41e355
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 0x41ef4c
mov edx, 0x4000
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jle 0x41ea70
mov dword [ebx + 0x5c], edx
test ecx, ecx
je 0x41f6ab
cmp edi, 0x3ea
je 0x41e78b
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 0x41ef76
cmp eax, edx
jg 0x41eb8e
mov edi, dword [ebp - 0x108]
test edi, edi
jne 0x41f9dd
mov edi, dword [ebx + 0x3790]
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xf0], 0
cmp edi, 0x3ea
je 0x41f679
cmp edi, 0x3e8
jne 0x41f82b
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.00418a74
pop ecx
mov dword [ebp - 0xfc], edi
mov esi, 0x11
jmp 0x41e7cf
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.004196b0
add esp, 0x18
jmp 0x41e259
push 0
push 0xfa6
push esi
call fcn.0041a528
xor eax, eax
mov edx, dword [ebx + 0x4c]
test edx, edx
sete al
add eax, eax
push eax
push 0x2712
push esi
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
cmp eax, 0x3e9
je 0x41ec24
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41fa48
mov edx, dword [0x4534ec]
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 [0x4534ec], eax
cmp dword [ebp - 0xf0], 0x3e8
je 0x41e1a0
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41e1a0
mov edi, dword [ebp - 0xf0]
cmp eax, edi
je 0x41e1a0
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 0x41faeb
test al, 2
je 0x41e4a9
movsw word es:[edi], word [esi]
test al, 1
je 0x41e4ae
movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 0x70]
jmp 0x41e1a0
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 [0x446174]
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 [0x446178]
fstp dword [ebx + 0x3784]
fstp dword [edx]
add eax, 1
add ecx, edi
add edx, edi
cmp esi, eax
jg 0x41e691
mov esi, dword [ebp - 0xfc]
cmp esi, 2
jne 0x41cf7a
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 [0x446178]
fstp dword [ebx + 0x378c]
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp edi, eax
jg 0x41e6f9
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x41cf82
mov edi, 0x3e8
cmp edi, 0x3ea
je 0x41e766
mov ecx, dword [ebp - 0x160]
test ecx, ecx
jne 0x41cdaf
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x108], 0
jmp 0x41cdea
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.00418d94
pop eax
pop edx
xor edi, edi
mov eax, dword [ebp - 0x108]
test eax, eax
jne 0x41efa0
cmp dword [ebx + 0x3790], 0x3e8
je 0x41e813
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a528
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f7fa
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
cmp eax, 0x3e8
je 0x41ed80
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41e8a3
mov esi, dword [ebp - 0xe8]
cmp eax, esi
je 0x41e8a3
push 0xfbc
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
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.0040e430
add esp, 0x20
push 0
push 0x2712
push esi
call fcn.0041a528
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 0x41ed80
mov eax, dword [ebx + 0x94]
cmp byte [ebp - 0x129], 0
je 0x41f904
cmp dword [ebx + 0x3790], 0x3e9
je 0x41fc87
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e430
mov edi, eax
add esp, 0x24
test eax, eax
js 0x41f943
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
cmp eax, 0x3e9
je 0x41fc41
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.004197c4
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 0x41e990
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 0x41e9d8
mov esi, dword [ebp - 0x128]
or esi, dword [ebp - 0xc8]
jne 0x41f859
jmp 0x41e9d8
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 0x41ee0b
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 0x41dc90
push dword [ebp - 0xe4]
push eax
push dword [ebp - 0x10c]
call fcn.0042158c
add esp, 0xc
test eax, eax
jne 0x41f943
mov eax, dword [ebp - 0xe4]
jmp 0x41dc90
mov dword [ebp - 0x144], 1
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
jmp 0x41c945
xor edx, edx
cmp eax, 0x3e7f
jle 0x41e297
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 0x41e297
movsb byte es:[edi], byte [esi]
jmp 0x41e232
movsw word es:[edi], word [esi]
jmp 0x41e22a
test edi, 1
jne 0x41fd75
test edi, 2
jne 0x41fd61
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41e222
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 0x41e0c0
mov ecx, 0x44e
test dl, dl
je 0x41e0c0
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 0x41ca3b
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 0x41d94f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov edi, dword [ebx + 0x37a8]
test edi, edi
jne 0x41cd91
mov edi, 0x3e9
jmp 0x41e750
cmp dword [ebp - 0x120], 0xfffffc18
jne 0x41c9a4
mov ecx, 1
jmp 0x41c9be
xor esi, esi
mov dword [ebx + 0x37a8], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x108], esi
jmp 0x41e31a
mov ecx, dword [ebp - 0xe8]
jmp 0x41c647
sub dword [ebp - 0x160], 0xfa0
jmp 0x41dd7f
add dword [ebp - 0x160], 0x1f40
jmp 0x41dd5b
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 0x41decb
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 0x41c855
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41fbe3
mov edx, dword [0x4534ec]
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 [0x4534ec], eax
jmp 0x41e439
mov eax, esi
imul ecx
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
jmp 0x41d94f
fstp st(2)
fxch st(1)
fldz
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x41d161
fmulp st(1)
jmp 0x41d163
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.004286e0
add esp, 0x20
test eax, eax
jne 0x41f943
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
je 0x41f415
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41edac
mov eax, dword [ebx + 0x46d4]
test eax, eax
jne 0x41edac
mov dword [ebx + 0x48], 1
mov eax, dword [ebx + 0x3770]
mov edi, dword [ebp - 0xdc]
test edi, edi
je 0x41edc1
mov edx, dword [ebx + 0xa0]
push eax
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
call fcn.00416a8c
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 0x41e102
mov esi, dword [ebx + 0x90]
mov eax, dword [ebp - 0x150]
xor eax, 1
test dword [ebp - 0x108], eax
jne 0x41f0bc
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
jmp 0x41e93f
mov dword [ebx + 0x48], 0
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x41e102
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.004197c4
pop edi
mov ebx, dword [ebp - 0x10c]
mov byte [ebx], al
mov eax, dword [ebp - 0xf8]
mov dword [0x4534ec], eax
mov eax, 1
jmp 0x41c4e3
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41ea17
mov esi, dword [ebp - 0x108]
test esi, esi
jne 0x41ea17
cmp edi, 2
jle 0x41ea17
mov eax, dword [ebp - 0x10c]
jmp 0x41ee46
sub edi, 1
cmp edi, 2
je 0x41ea17
cmp byte [eax + edi], 0
je 0x41ee3a
jmp 0x41ea17
mov eax, 1
mov dword [ebp - 0x110], 0x44d
cmp edi, 0x3e9
jne 0x41ee6c
test al, al
jne 0x41eeaa
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 0x41dffa
cmp edi, 0x3e8
je 0x41cd50
jmp 0x41d94f
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 0x41cd50
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 0x41f835
test al, 2
je 0x41eefa
movsw word es:[edi], word [esi]
test al, 1
je 0x41e235
movsb byte es:[edi], byte [esi]
jmp 0x41e235
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c988
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41fb75
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
mov esi, dword [ebx + 0x90]
jmp 0x41cc5c
cmp eax, 0x44f
setle al
jmp 0x41ee60
cmp dword [ebx + 0x3770], 1
je 0x41f680
test ecx, ecx
je 0x41fb31
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 0x41e2f0
push 0xc
push dword [ebp - 0x108]
push dword [ebp - 0x118]
call fcn.004188e4
add esp, 0xc
jmp 0x41e2dc
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a528
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f7fa
mov ecx, dword [ebp - 0x150]
test dword [ebp - 0x108], ecx
je 0x41e813
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a528
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a528
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a528
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.0040e430
add esp, 0x18
test eax, eax
js 0x41f943
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a528
push 0xfbc
push dword [ebp - 0xf4]
call fcn.0041a528
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0x20
mov byte [ebp - 0x129], 1
cmp eax, 0x3e8
jne 0x41e83e
jmp 0x41e939
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.0041a528
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a528
push 0
push 0x2712
push dword [ebp - 0xf4]
call fcn.0041a528
add esp, 0x20
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a528
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a528
add esp, 0x18
cmp dword [ebx + 0x3790], 0x3e9
mov edx, dword [ebp - 0xe8]
je 0x41fb0c
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.0040e430
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.0040e430
add esp, 0x30
test eax, eax
js 0x41f943
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
jmp 0x41e939
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x130], eax
jmp 0x41c71e
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.00416b28
add esp, 0xc
mov dword [ebx + 0x24], eax
test esi, esi
jne 0x41d0ce
mov esi, dword [ebp - 0x114]
sub eax, esi
mov dword [ebp - 0x114], eax
fld dword [0x446180]
fimul dword [ebp - 0x114]
fld qword [0x446188]
fmulp st(1)
sub esp, 8
fstp qword [esp]
call sub.MSVCR80.dll_exp
fstp dword [ebp - 0x114]
fld dword [ebp - 0x114]
fsubr dword [0x446110]
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 0x41d237
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 0x41f968
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 0x41f973
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 0x41d34e
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 [0x446178]
faddp st(3)
fxch st(3)
fmul st(5)
fxch st(1)
fmul st(6)
fadd dword [0x446178]
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 0x41f3a0
fstp st(3)
fstp st(1)
fstp dword [ebx + 0x3780]
fstp dword [ebx + 0x3788]
jmp 0x41cf82
lea ecx, [edi - 0x3e8]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 0
jmp 0x41c855
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
je 0x41fa91
cmp eax, 0x2ee0
je 0x41fb66
cmp eax, 0x3e80
mov eax, 0x44f
cmovne eax, dword [ebp - 0x110]
mov dword [ebp - 0x110], eax
jmp 0x41ed06
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
xor esi, esi
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xf0], 0
jmp 0x41cc03
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.004196b0
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 0x41f569
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x134]
add edx, edx
add edx, edx
add edx, esi
jmp 0x41f551
fstp st(1)
fld dword [0x446158]
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 0x41f569
fld dword [0x446114]
fmul dword [esi]
fld dword [0x446154]
fxch st(1)
fcomi st(1)
ja 0x41f528
fstp st(0)
jmp 0x41f536
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.004286e0
mov dword [ebx + 0x48], 0
add esp, 0x20
jmp 0x41d365
mov esi, 0x1f40
jmp 0x41d24e
push 0x3c
call fcn.00437ccc
shl eax, 8
mov ecx, eax
pop esi
jmp 0x41ceaa
fld dword [ebp - 0xac]
jmp 0x41d499
push 0x1d4c0
call sub.MSVCR80.dll_malloc
mov dword [ebp - 0xe8], eax
mov dword [0x4534f0], eax
pop eax
jmp 0x41d992
fld dword [0x446160]
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 + 0x446ac0]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
fld dword [ebp - 0xe8]
fcompi st(1)
fstp st(0)
jbe 0x41faaa
fld dword [0x446160]
fmul dword [ebx + 0x46d0]
fstp dword [ebx + 0x46d0]
jmp 0x41dcbe
cmp esi, 0x3e80
jg 0x41ca20
mov eax, dword [ebx + 0x37a0]
cmp eax, 0x44f
jle 0x41c9fa
jmp 0x41cc8e
xor esi, esi
jmp 0x41e7ab
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jg 0x41fbaa
cmp eax, 0x3e7f
jg 0x41ea7d
mov dword [ebx + 0x5c], 0
test ecx, ecx
jne 0x41e2ae
cmp dword [ebx + 0x70], 2
jne 0x41e2a2
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f6db
cmp dword [ebp - 0xf0], 0x3fff
jg 0x41e2a2
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 [0x446194]
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 0x41fdc3
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 [0x446118]
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 0x41f756
fstp st(1)
mov esi, dword [ebp - 0xe8]
cmp dword [ebp - 0xe0], esi
jle 0x41f7e5
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 [0x446118]
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 0x41f7be
fstp st(0)
jmp 0x41f7e7
fstp st(0)
movzx eax, word [ebp - 0xf0]
mov word [ebx + 0x3774], ax
jmp 0x41e2a2
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.0041a528
add esp, 0xc
jmp 0x41efca
mov esi, 0x11
jmp 0x41e7ab
test edi, 1
jne 0x41fda2
test edi, 2
jne 0x41fd8e
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41eef4
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 0x41f8d1
fld dword [0x44615c]
fcompi st(1)
fstp st(0)
jbe 0x41e9d6
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 + 0x446ac0]
mov dword [ebp - 0xe8], esi
fidiv dword [ebp - 0xe8]
fmul dword [0x446198]
add esp, 0xc
fld dword [ebp - 0xf4]
fcompi st(1)
fstp st(0)
jb 0x41fdf9
jmp 0x41f8d5
fstp st(0)
fstp st(0)
mov eax, dword [ebx + 0x46cc]
add eax, 1
mov dword [ebx + 0x46cc], eax
cmp eax, 0xa
jle 0x41f8fc
cmp eax, 0x1e
jle 0x41fc1f
mov dword [ebx + 0x46cc], 0xa
mov eax, dword [ebp - 0x6c]
jmp 0x41e9e2
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e430
mov edi, eax
add esp, 0x24
test eax, eax
jns 0x41ed80
mov eax, dword [ebp - 0xf8]
mov dword [0x4534ec], eax
mov eax, 0xfffffffd
jmp 0x41c4e3
fldz
fchs
jmp 0x41c347
xor eax, eax
jmp 0x41c864
mov dword [ebx + 0x40], ecx
test al, al
jne 0x41f370
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.00416b28
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
imul eax, ecx
cdq
idiv dword [ebp - 0x124]
mov dword [ebx + 0x40], eax
jmp 0x41d34e
push 1
push dword [ebp - 0x150]
push dword [ebp - 0x118]
call fcn.004188e4
mov edi, dword [ebx + 0x3790]
add esp, 0xc
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
cmp edi, 0x3e9
je 0x41fcf4
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 0x41e30e
push 1
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
push dword [ebx + 0x98]
push 0xfb4
push esi
call fcn.0041a528
push dword [ebx + 0xa0]
push 0xfa2
push esi
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x24
jmp 0x41e3de
mov dword [ebp - 0x110], 0x44d
jmp 0x41ed06
mov eax, 0xffffffff
jmp 0x41c4e3
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 + 0x446ac0]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
jmp 0x41f64c
mov ecx, 0x44d
jmp 0x41eb0b
and ecx, 1
jne 0x41fde6
test edi, 2
jne 0x41fdd2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41e4a3
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xe8], edi
push edi
push dword [ebp - 0x118]
call fcn.00418d94
pop eax
pop edx
mov edx, dword [ebp - 0xfc]
jmp 0x41f15c
cmp dword [ebx + 0x70], 2
jne 0x41ef61
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f6db
cmp esi, 0x3fff
jle 0x41f6db
jmp 0x41e2ae
mov dword [ebp - 0x110], 0x44e
jmp 0x41ed06
mov ecx, 1
mov esi, dword [ebx + 0x90]
jmp 0x41cc5c
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 0x41d1ff
mov dword [ebx + 0x5c], 0x4000
test ecx, ecx
jne 0x41ef61
cmp dword [ebx + 0x70], 2
jne 0x41ef61
movzx eax, word [ebx + 0x3774]
mov dword [ebp - 0xf0], 0x4000
cmp ax, 0x3fff
jg 0x41e2ae
jmp 0x41f6db
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a528
push 0
push 0xfb4
push esi
call fcn.0041a528
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
jmp 0x41e3de
mov dword [ebx + 0x46d8], 0
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xe0]
mov esi, dword [ebx + 0x3790]
jmp 0x41edd8
mov ecx, dword [ebx + 0x94]
test ecx, ecx
je 0x41e939
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 0x41e93f
test eax, eax
je 0x41e8e3
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a528
mov eax, dword [ebx + 0x94]
add esp, 0xc
jmp 0x41e8e3
fld dword [0x446134]
fld dword [0x446138]
mov eax, 0xd
jmp 0x41d11d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41df0f
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41df03
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.00418dc4
mov edi, dword [ebx + 0x3790]
add esp, 0xc
jmp 0x41e30e
fld dword [0x446144]
fld dword [0x446148]
mov eax, 0xf
jmp 0x41d11d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41eac7
movzx ecx, byte [esi]
mov byte [ebp - 0xf0], cl
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41eabb
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41f84d
movzx ecx, byte [esi]
mov byte [ebx + 0x37c8], cl
lea edi, [ebx + 0x37c9]
add esi, 1
sub eax, 1
jmp 0x41f841
fldz
jmp 0x41d19b
fstp st(1)
xor eax, eax
mov dword [ebp - 0xfc], eax
jmp 0x41f79b
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41fb00
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41faf4
mov eax, dword [ebp - 0x6c]
jmp 0x41e9d8
mov esi, dword [ebx + 0x90]
mov ecx, 0x32
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0xfc], eax
jmp 0x41cd50
cmp edi, 0x3ea
sete dl
mov eax, edi
mov edi, dword [ebp - 0xf0]
jmp 0x41c460