Function at 0x41bac0
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 [0x4520e4]
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x41cf74
mov eax, dword [ebp - 0xf8]
mov dword [0x4520e4], 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 0x41f5d0
cmp esi, 1
je 0x41c01f
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 0x41c041
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.0041a058
mov dword [ebp - 0xc8], 0
add esp, 0xc
cmp dword [ebx + 0x2c], 6
jg 0x41be12
mov eax, dword [ebx + 0x1de0]
mov dword [ebp - 0x128], eax
test eax, eax
jne 0x41c0ad
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 0x41c050
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
je 0x41c08a
cmp edi, 0xffffffff
jne 0x41bca5
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 0x41bda7
mov edi, dword [ebp - 0xe4]
cmp edi, 2
jle 0x41bd5b
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 0x41bd5f
imul edi, edx
mov dword [ebp - 0x14c], edi
cmp edx, 0x31
jg 0x41c120
cmp edi, 0x12b
jle 0x41c64e
cmp ecx, 0x95f
jle 0x41c652
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 0x41c177
fstp st(0)
jmp 0x41bd61
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 0x41bf6b
cmp dword [ebp - 0xf0], 0x64
jle 0x41c6b0
mov dword [ebp - 0xe0], 0
xor esi, esi
mov edx, 1
mov eax, 0x3ea
jmp 0x41bf90
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 0x41bcd6
mov edx, dword [ebx + 0x90]
cmp edx, 0x3e7f
jle 0x41bc16
mov ecx, dword [ebp - 0xe0]
imul ecx, dword [ebx + 0x70]
test ecx, ecx
jle 0x41f488
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 0x41be4e
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.004260e8
add esp, 0x30
fld dword [ebp - 0x128]
fld dword [ebp - 0x120]
fcompi st(1)
fstp st(0)
jb 0x41d7d8
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 0x41bc5c
cmp dword [ebx + 0x7c], 0xfffffc18
je 0x41cfb5
mov eax, dword [ebp - 0xa8]
cmp eax, 0xc
jg 0x41c0f1
mov edx, 0x44d
mov dword [ebx + 0x46c8], edx
jmp 0x41bc5c
cmp dword [ebp - 0xf0], 0x64
jle 0x41c66d
xor esi, esi
mov edx, 1
mov dword [ebp - 0xe0], 0
xor edi, edi
mov eax, 0x3ea
cmp ecx, 0x44e
jne 0x41cf9b
test dl, dl
je 0x41cf9b
mov eax, 0x3ea
mov ecx, 0x44d
push dword [ebx + 0x3770]
mov edx, dword [ebp - 0xfc]
call fcn.004192f4
pop ecx
or eax, esi
mov esi, dword [ebp - 0x10c]
mov byte [esi], al
mov eax, 1
cmp edi, 1
jle 0x41bff9
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 0x41c761
mov esi, dword [ebp - 0xf8]
mov dword [0x4520e4], 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 0x41bbae
mov eax, 0xfffffffe
jmp 0x41c013
mov dword [ebp - 0x11c], 0
jmp 0x41bbd7
cmp dword [ebx + 0x78], 1
je 0x41bc76
fstp st(0)
lea eax, [ebx + 0x37b4]
push eax
push esi
push dword [ebp - 0xe0]
push dword [ebp - 0x104]
call fcn.0041686c
add esp, 0x10
mov edi, dword [ebx + 0xa4]
cmp edi, 0xfffffc18
jne 0x41bc88
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 0x41bca5
lea eax, [ebx + 0xbc]
push eax
call fcn.00440de8
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 0x41bf27
mov edx, 0x44e
cmp eax, 0xe
jle 0x41bf60
mov edx, 0x44f
cmp eax, 0x10
jle 0x41bf60
xor edx, edx
cmp eax, 0x12
setg dl
add edx, 0x450
jmp 0x41bf60
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 0x41e6d7
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 0x41c193
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 0x41d6e4
cmp eax, 0xbba
je 0x41d976
mov edx, dword [ebx + 0x8c]
test edx, edx
js 0x41da86
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 0x41c22e
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 0x41d296
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 0x41c283
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 0x41c29f
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 0x41c2c7
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 0x41c325
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
je 0x41d814
fstp st(0)
mov dword [ebx + 0x3790], eax
cmp eax, 0x3ea
je 0x41c331
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 0x41c331
jmp 0x41c327
fstp st(0)
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x140], eax
test eax, eax
je 0x41d001
mov dword [ebx + 0x3790], 0x3ea
mov eax, dword [ebp - 0x120]
test eax, eax
jg 0x41d9eb
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 0x41d051
mov dword [ebx + 0x44], eax
mov esi, dword [ebp - 0xf0]
cmp esi, 0x32
jle 0x41c3c4
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 0x41c3f2
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 0x41d245
cmp edi, 0x3ea
je 0x41d985
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 0x41d733
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 0x41d0a3
mov esi, dword [ebx + 0x54]
test esi, esi
jne 0x41d0a3
mov eax, dword [ebp - 0x124]
cmp dword [ebx + 0x37a0], eax
jle 0x41e6a4
mov eax, dword [ebp - 0x124]
mov dword [ebx + 0x37a0], eax
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41d80a
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
cmp edi, 0x3ea
je 0x41c786
mov esi, dword [ebx + 0x90]
cmp dword [ebp - 0x158], 0x3a97
jg 0x41c78c
mov eax, dword [ebx + 0x37a0]
mov edx, 0x44f
cmp eax, edx
cmovg eax, edx
mov dword [ebx + 0x37a0], eax
cmp esi, 0x5dc0
jg 0x41c550
cmp esi, 0x3e80
jg 0x41c550
cmp esi, 0x2ee0
jg 0x41c550
cmp eax, 0x44f
je 0x41c7d4
cmp esi, 0x1f40
jg 0x41c550
cmp eax, 0x44d
jg 0x41c7ea
mov eax, dword [ebx + 0x46c8]
cmp edi, 0x3ea
sete dl
test eax, eax
je 0x41c56b
test cl, cl
jne 0x41dbc4
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 0x41c805
test dl, dl
jne 0x41c805
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 0x41c630
test esi, esi
jne 0x41c5c4
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 0x41da7c
cmp dword [ebp - 0xfc], 5
jle 0x41c805
cmp edi, 0x44d
jle 0x41c7f9
sub edi, 1
mov dword [ebx + 0x37a0], edi
mov ecx, dword [edi*8 + 0x447d18]
mov eax, dword [edi*8 + 0x447d1c]
cmp esi, 1
jne 0x41c5be
sub ecx, eax
jmp 0x41c5c4
fstp st(0)
jmp 0x41c654
fstp st(0)
mov edi, dword [ebx + 0x3790]
mov ecx, dword [ebx + 0x37a0]
test ecx, ecx
jne 0x41c6ac
mov ecx, 0x44d
test edi, edi
je 0x41c6b0
cmp dword [ebp - 0xf0], 0x19
jne 0x41c6b5
cmp edi, 0x3e8
je 0x41c6b5
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 0x41bf90
test edi, edi
jne 0x41c66d
mov edi, 0x3e8
cmp dword [ebp - 0xf0], 0x10
jg 0x41ef7a
cmp dword [ebp - 0x100], 1
je 0x41c6f4
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
movzx eax, byte [ebp - 0xe8]
cmp dword [ebp - 0xf0], 0xa
je 0x41da4b
test al, al
je 0x41da4b
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 0x41f94c
cmp byte [ebp - 0xe8], 0
je 0x41f94c
mov edi, dword [ebp - 0xf0]
mov eax, 0x3e8
mov ecx, 0x44f
jmp 0x41bfae
mov esi, dword [ebp - 0xe4]
push esi
push eax
push dword [ebp - 0x10c]
call fcn.004210bc
add esp, 0xc
test eax, eax
mov eax, 0xfffffffd
cmove eax, esi
jmp 0x41c007
mov esi, dword [ebx + 0x90]
cmp esi, 0x5dc0
jg 0x41c550
cmp dword [ebx + 0x37a0], 0x450
jle 0x41f187
mov dword [ebx + 0x37a0], 0x450
cmp esi, 0x3e80
jg 0x41c550
mov dword [ebx + 0x37a0], 0x44f
cmp esi, 0x2ee0
jg 0x41c550
mov dword [ebx + 0x37a0], 0x44e
cmp esi, 0x1f40
jg 0x41c550
mov dword [ebx + 0x37a0], 0x44d
jmp 0x41c550
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.0041a058
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
je 0x41d319
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x41d422
mov dword [ebx + 0x37a0], 0x44d
cmp edi, 0x3e8
jne 0x41e981
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 0x41db65
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x37a8]
test eax, eax
je 0x41e27b
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.004166bc
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.004187e0
mov edx, dword [0x4520e4]
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 [0x4520e4], 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 0x41da2a
test al, 2
je 0x41c9b9
movsw word es:[edi], word [esi]
test al, 1
je 0x41c9be
movsb byte es:[edi], byte [esi]
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
je 0x41f0e4
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.004378b4
pop edx
cmp dword [ebx + 0x6c], 0x800
mov esi, dword [ebx + 0x70]
mov edx, dword [ebp - 0x11c]
je 0x41dfe6
imul edx, esi
add edx, edx
add edx, edx
mov eax, dword [ebp - 0x100]
add edx, eax
fld dword [0x4474ec]
fidiv dword [ebx + 0x90]
fld1
fsub st(1)
fld dword [ebx + 0x3780]
xor eax, eax
cmp esi, 2
je 0x41eebe
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 [0x4474e8]
faddp st(1)
fxch st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp edi, eax
jg 0x41ca7b
fstp st(1)
fstp st(1)
fstp dword [ebx + 0x3780]
jmp 0x41cab2
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edi, dword [ebp - 0x114]
test edi, edi
je 0x41cb06
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 + 0x447d60]
add esp, 0xc
fld dword [0x447490]
fcompi st(1)
jbe 0x41cf14
fucompi st(0)
jp 0x41cf16
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xfc], eax
cmp eax, 0x3ea
je 0x41dc2a
mov eax, dword [0x4520e4]
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 [0x4520e4], eax
mov dword [ebp - 0x154], 0xffffffff
mov esi, dword [ebp - 0xc8]
test esi, esi
je 0x41cb74
fld dword [0x4474cc]
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 0x41ed47
mov eax, dword [ebp - 0x114]
mov dword [ebx + 0x24], eax
test esi, esi
je 0x41cd2f
mov ecx, dword [ebp - 0x148]
test ecx, ecx
je 0x41cd2f
mov edx, dword [ebx + 0xb0]
test edx, edx
jne 0x41cd2f
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x114], eax
cmp eax, 0x44d
je 0x41f7e7
cmp eax, 0x44e
je 0x41f87b
fld dword [0x4474ac]
fld dword [0x4474b0]
mov eax, 0x11
test edi, edi
jle 0x41f8ec
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 0x41cc9c
fld dword [0x4474c0]
fxch st(2)
fcomi st(2)
ja 0x41e7ce
fstp st(0)
fstp st(0)
jmp 0x41cc93
fstp st(1)
faddp st(1)
add eax, 4
cmp edx, eax
je 0x41ccbb
fld dword [eax]
fld dword [0x447488]
fcomi st(1)
ja 0x41cc7b
fstp st(0)
fstp st(0)
fld dword [0x4474bc]
faddp st(1)
add eax, 4
cmp edx, eax
jne 0x41cc9c
add edx, 0x54
add ecx, 0x15
cmp ecx, esi
jne 0x41cc75
mov edi, dword [ebp - 0x164]
fdivrp st(1)
mov dword [ebp - 0x164], edi
fimul dword [ebp - 0x164]
fadd dword [0x447500]
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 0x41f6b5
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 0x41f0da
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 0x41ee5f
mov dword [ebx + 0x18], 0x1f40
mov dword [ebx + 0x14], 0x3e80
cmp dword [ebp - 0xfc], 0x3e8
jne 0x41ce52
cmp dword [ebp - 0xf0], 0x32
jle 0x41ce1a
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 0x41ce52
mov dword [ebx + 0x14], 0x2ee0
mov eax, 0x2ee0
cmp esi, eax
cmovle eax, esi
mov dword [ebx + 0x1c], eax
cmp edx, 0x1b57
jg 0x41ce52
mov dword [ebx + 0x14], 0x1f40
mov dword [ebx + 0x1c], 0x1f40
cmp byte [ebp - 0x164], 0
je 0x41ce72
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 0x41efa2
mov ecx, dword [ebx + 0x70]
mov esi, dword [ebp - 0xe0]
imul esi, ecx
test esi, esi
jle 0x41e7e7
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 0x41cefc
fstp st(1)
fld dword [0x4474c8]
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 0x41e7e7
fld dword [0x447484]
fmul dword [eax]
fld dword [0x4474c4]
fxch st(1)
fcomi st(1)
ja 0x41cecf
fstp st(0)
jmp 0x41cedd
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 0x41cb06
mov dword [ebp - 0xe4], edx
push 0x1d4c0
call sub.MSVCR80.DLL_malloc
mov dword [ebp - 0xf8], eax
mov dword [0x4520e8], eax
pop esi
mov edx, dword [ebp - 0xe4]
jmp 0x41bb56
cmp eax, 0x3e9
jne 0x41bfae
mov edx, 0x450
cmp ecx, edx
cmovl ecx, edx
jmp 0x41bfae
mov eax, dword [ebx + 0x3794]
test eax, eax
jne 0x41d7a5
fld dword [ebp - 0xb4]
fsubr dword [0x447480]
fmul dword [0x4474d4]
fadd dword [0x447488]
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 0x41bf4c
mov edi, dword [ebx + 0x3790]
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41ef26
cmp edi, 0x3ea
je 0x41d9eb
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 0x41c394
cmp dword [ebx + 0x3798], 2
jne 0x41c394
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x41f491
cmp edi, 0x3ea
je 0x41c394
cmp dword [ebp - 0x120], 0x3ea
je 0x41c394
mov dword [ebx + 0x3770], 2
mov eax, 1
mov dword [ebp - 0x130], 2
jmp 0x41c394
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 0x41d6f3
mov edx, 0x44e940
mov eax, 0x44e960
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 0x41d194
cmp dword [ebx + 0x37a4], eax
jl 0x41d22b
sub edx, esi
mov esi, dword [ebp - 0xe8]
cmp edx, esi
jle 0x41d716
sub eax, 1
cmp eax, 0x44d
jne 0x41d174
mov ecx, edi
mov edi, dword [ebp - 0x110]
mov dword [ebx + 0x37a4], eax
mov dword [ebx + 0x37a0], eax
test ecx, ecx
jne 0x41d232
cmp edi, 0x3ea
je 0x41ea38
mov edx, dword [ebx + 0x58]
test edx, edx
jne 0x41d21b
cmp eax, 0x44f
jle 0x41d21b
mov dword [ebx + 0x37a0], 0x44f
cmp dword [ebp - 0x124], 0x44e
jle 0x41c4b8
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41e6b4
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
jmp 0x41c4ee
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c4b8
jmp 0x41d1f8
add edx, esi
jmp 0x41d194
mov esi, dword [ebp - 0x124]
cmp eax, esi
jle 0x41c4c4
jmp 0x41c4b8
cmp dword [ebp - 0x144], 1
jg 0x41d268
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 0x41c45b
cmp dword [ebp - 0x110], 2
jne 0x41ed36
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 0x41d2d6
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 0x41c24e
mov esi, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], esi
mov eax, dword [ebx + 0xb0]
cmp esi, 0x44e
jne 0x41d347
mov dword [ebx + 0x37a0], 0x44f
mov dword [ebp - 0x110], 0x44f
test eax, eax
je 0x41d35f
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 0x41d47f
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 0x41d47f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov esi, dword [ebx + 0x37a8]
test esi, esi
je 0x41e280
mov dword [ebx + 0x37a8], 0
cmp edi, 0x3ea
jne 0x41c8cb
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 0x41c91a
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0x110], eax
cmp edi, 0x3e8
jne 0x41ea6f
cmp dword [ebp - 0x110], 0x44f
jle 0x41f931
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 0x41e65c
mov eax, dword [ebp - 0xe0]
cdq
idiv dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x134]
cmp eax, 0xffffffff
je 0x41d4af
mov dword [ebx + 0x1dd4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebx + 0x1dd8], eax
mov eax, dword [0x4520e4]
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x41f101
mov eax, dword [ebp - 0xe4]
cmp eax, 2
je 0x41db20
lea edi, [eax + eax]
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41d531
cmp dword [ebx + 0xa4], 0xffffffff
je 0x41d531
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 [0x4520e4], eax
push edx
mov dword [ebp - 0xf0], edx
call fcn.00421974
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 0x41d7ff
mov dword [ebx + 0x78], 1
mov eax, dword [ebp - 0xe4]
test eax, eax
jle 0x41dab6
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 0x41d6a8
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.0041bac0
add esp, 0x34
test eax, eax
js 0x41d7bb
push eax
push ebx
push dword [ebp - 0xe8]
call fcn.004218b0
add esp, 0xc
test eax, eax
js 0x41d7bb
add esi, 1
mov eax, dword [ebp - 0xe0]
add ebx, eax
cmp dword [ebp - 0xe4], esi
je 0x41daa8
mov dword [edi + 0x44], 0
mov ecx, dword [ebp - 0xf0]
xor eax, eax
cmp esi, ecx
setl al
mov dword [edi + 0x46d4], eax
jne 0x41d62e
cmp byte [ebp - 0xf4], 0
je 0x41d62e
mov dword [edi + 0x88], 0x3ea
jmp 0x41d62e
mov dword [ebp - 0x13c], 0x7f
jmp 0x41c22e
cmp dword [ebx + 0x78], 1
mov edx, 0x44e940
mov eax, 0x450a00
cmovne edx, eax
mov eax, 0x44e960
mov esi, 0x450a20
cmovne eax, esi
jmp 0x41d0cf
mov ecx, edi
mov edi, dword [ebp - 0x110]
cmp eax, 0x44e
jne 0x41d1b4
mov eax, 0x44f
jmp 0x41d1b4
lea eax, [ebp - 0x88]
mov dword [ebp - 0x118], eax
push eax
push dword [ebx + 0xb4]
push dword [ebp - 0x130]
call fcn.0042981c
mov edi, dword [ebx + 0x3790]
add esp, 0xc
cmp edi, 0x3ea
jne 0x41e588
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 0x41d0b8
cmp eax, 0x3ea
je 0x41f0f6
fld dword [ebp - 0xb0]
jmp 0x41cfc9
mov eax, 0xfffffffd
mov ebx, dword [ebp - 0xf8]
mov dword [0x4520e4], ebx
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
fld dword [0x4474cc]
fld dword [ebp - 0xa4]
fcompi st(1)
fstp st(0)
ja 0x41f11c
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x120], eax
jmp 0x41c0da
mov dword [ebx + 0x3798], eax
jmp 0x41d5e5
mov ecx, 1
jmp 0x41c4e2
fld1
fsub st(1)
fld dword [0x4474d8]
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 [0x4474dc]
fxch st(1)
fmul dword [0x4474e0]
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 0x41e6f1
cmp dword [ebp - 0x120], 0x3ea
je 0x41e6e2
mov eax, dword [ebp - 0x120]
test eax, eax
jle 0x41d8af
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 0x41d91a
mov eax, 0x80
mov edi, dword [ebp - 0x13c]
sub eax, edi
sar eax, 4
cmp eax, ecx
jge 0x41d91a
mov dword [ebx + 0x3790], 0x3e8
cmp dword [ebp - 0x13c], 0x64
jle 0x41d936
test byte [ebp - 0x140], 1
je 0x41d936
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 0x41c327
mov eax, dword [ebx + 0x3790]
jmp 0x41c301
mov dword [ebp - 0x13c], 0
jmp 0x41c22e
cmp dword [ebp - 0x144], 4
jg 0x41d9b2
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 0x41d0b8
cmp dword [ebp - 0x120], 0x3ea
jne 0x41e700
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 0x41c385
and ecx, 1
jne 0x41f811
test edi, 2
jne 0x41f7fd
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41c9b3
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 0x41c733
mov eax, 1
jmp 0x41c807
cmp dword [ebp - 0x150], 0x800
mov edx, 0x30
mov eax, 0x73
cmovne eax, edx
mov dword [ebp - 0x13c], eax
jmp 0x41c22e
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.00421980
add esp, 0x1c
test eax, eax
mov ecx, dword [ebp - 0xe0]
js 0x41d7bb
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 0x41d7c0
mov edi, 3
jmp 0x41d4d4
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 0x41d3b9
cmp edi, 0x3e8
jne 0x41d47f
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 0x41e7b5
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 0x41d47f
mov ecx, edx
sar ecx, 4
sub ecx, edi
mov dword [ebp - 0xfc], ecx
jmp 0x41d47f
mov esi, dword [ebx + 0x3770]
mov dword [ebp - 0x110], esi
imul ecx, esi, 0x4650
mov esi, dword [ebp - 0xe8]
cmp ecx, esi
jl 0x41e603
cmp edi, 0x3ea
je 0x41f611
imul edi, dword [ebp - 0x110], 0x7530
mov ecx, 0x44f
mov esi, dword [ebp - 0xe8]
cmp edi, esi
jge 0x41e63b
imul ecx, dword [ebp - 0x110], 0xabe0
cmp ecx, esi
setl cl
movzx ecx, cl
add ecx, 0x450
jmp 0x41e63b
fld1
fstp dword [ebp - 0x114]
mov eax, dword [ebp - 0x110]
lea edx, [eax - 0x44d]
mov eax, 0x15
cmp edx, 3
ja 0x41dc4f
mov eax, dword [edx*4 + 0x4491c0]
push eax
push 0x271c
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
push dword [ebx + 0x3770]
push 0x2718
push esi
call fcn.0041a058
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0041a058
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41dec1
mov edx, dword [0x4520e4]
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 [0x4520e4], 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 0x41ea06
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 0x41e5df
test al, 2
jne 0x41e5d8
test al, 1
jne 0x41e5d2
add esp, 0xc
fld dword [ebx + 0x377c]
fld1
fcomi st(1)
ja 0x41de83
fld dword [ebp - 0x114]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x41de85
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 0x41ea7c
mov edx, 0x4000
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jle 0x41e5a0
mov dword [ebx + 0x5c], edx
test ecx, ecx
je 0x41f1db
cmp edi, 0x3ea
je 0x41e2bb
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 0x41eaa6
cmp eax, edx
jg 0x41e6be
mov edi, dword [ebp - 0x108]
test edi, edi
jne 0x41f50d
mov edi, dword [ebx + 0x3790]
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xf0], 0
cmp edi, 0x3ea
je 0x41f1a9
cmp edi, 0x3e8
jne 0x41f35b
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.004185a4
pop ecx
mov dword [ebp - 0xfc], edi
mov esi, 0x11
jmp 0x41e2ff
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.004191e0
add esp, 0x18
jmp 0x41dd89
push 0
push 0xfa6
push esi
call fcn.0041a058
xor eax, eax
mov edx, dword [ebx + 0x4c]
test edx, edx
sete al
add eax, eax
push eax
push 0x2712
push esi
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
cmp eax, 0x3e9
je 0x41e754
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41f578
mov edx, dword [0x4520e4]
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 [0x4520e4], eax
cmp dword [ebp - 0xf0], 0x3e8
je 0x41dcd0
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41dcd0
mov edi, dword [ebp - 0xf0]
cmp eax, edi
je 0x41dcd0
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 0x41f61b
test al, 2
je 0x41dfd9
movsw word es:[edi], word [esi]
test al, 1
je 0x41dfde
movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 0x70]
jmp 0x41dcd0
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 [0x4474e4]
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 [0x4474e8]
fstp dword [ebx + 0x3784]
fstp dword [edx]
add eax, 1
add ecx, edi
add edx, edi
cmp esi, eax
jg 0x41e1c1
mov esi, dword [ebp - 0xfc]
cmp esi, 2
jne 0x41caaa
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 [0x4474e8]
fstp dword [ebx + 0x378c]
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp edi, eax
jg 0x41e229
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x41cab2
mov edi, 0x3e8
cmp edi, 0x3ea
je 0x41e296
mov ecx, dword [ebp - 0x160]
test ecx, ecx
jne 0x41c8df
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x108], 0
jmp 0x41c91a
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.004188c4
pop eax
pop edx
xor edi, edi
mov eax, dword [ebp - 0x108]
test eax, eax
jne 0x41ead0
cmp dword [ebx + 0x3790], 0x3e8
je 0x41e343
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a058
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f32a
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
cmp eax, 0x3e8
je 0x41e8b0
mov eax, dword [ebx + 0x3794]
test eax, eax
jle 0x41e3d3
mov esi, dword [ebp - 0xe8]
cmp eax, esi
je 0x41e3d3
push 0xfbc
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
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.0040e060
add esp, 0x20
push 0
push 0x2712
push esi
call fcn.0041a058
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 0x41e8b0
mov eax, dword [ebx + 0x94]
cmp byte [ebp - 0x129], 0
je 0x41f434
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f7b7
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e060
mov edi, eax
add esp, 0x24
test eax, eax
js 0x41f473
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
cmp eax, 0x3e9
je 0x41f771
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.004192f4
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 0x41e4c0
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 0x41e508
mov esi, dword [ebp - 0x128]
or esi, dword [ebp - 0xc8]
jne 0x41f389
jmp 0x41e508
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 0x41e93b
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 0x41d7c0
push dword [ebp - 0xe4]
push eax
push dword [ebp - 0x10c]
call fcn.004210bc
add esp, 0xc
test eax, eax
jne 0x41f473
mov eax, dword [ebp - 0xe4]
jmp 0x41d7c0
mov dword [ebp - 0x144], 1
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xfc], eax
jmp 0x41c475
xor edx, edx
cmp eax, 0x3e7f
jle 0x41ddc7
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 0x41ddc7
movsb byte es:[edi], byte [esi]
jmp 0x41dd62
movsw word es:[edi], word [esi]
jmp 0x41dd5a
test edi, 1
jne 0x41f8a5
test edi, 2
jne 0x41f891
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41dd52
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 0x41dbf0
mov ecx, 0x44e
test dl, dl
je 0x41dbf0
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 0x41c56b
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 0x41d47f
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x148], eax
mov edi, dword [ebx + 0x37a8]
test edi, edi
jne 0x41c8c1
mov edi, 0x3e9
jmp 0x41e280
cmp dword [ebp - 0x120], 0xfffffc18
jne 0x41c4d4
mov ecx, 1
jmp 0x41c4ee
xor esi, esi
mov dword [ebx + 0x37a8], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x108], esi
jmp 0x41de4a
mov ecx, dword [ebp - 0xe8]
jmp 0x41c177
sub dword [ebp - 0x160], 0xfa0
jmp 0x41d8af
add dword [ebp - 0x160], 0x1f40
jmp 0x41d88b
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 0x41d9fb
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 0x41c385
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x41f713
mov edx, dword [0x4520e4]
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 [0x4520e4], eax
jmp 0x41df69
mov eax, esi
imul ecx
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [ebp - 0xfc], edx
jmp 0x41d47f
fstp st(2)
fxch st(1)
fldz
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x41cc91
fmulp st(1)
jmp 0x41cc93
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.00428210
add esp, 0x20
test eax, eax
jne 0x41f473
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
je 0x41ef45
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x41e8dc
mov eax, dword [ebx + 0x46d4]
test eax, eax
jne 0x41e8dc
mov dword [ebx + 0x48], 1
mov eax, dword [ebx + 0x3770]
mov edi, dword [ebp - 0xdc]
test edi, edi
je 0x41e8f1
mov edx, dword [ebx + 0xa0]
push eax
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
call fcn.004166bc
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 0x41dc32
mov esi, dword [ebx + 0x90]
mov eax, dword [ebp - 0x150]
xor eax, 1
test dword [ebp - 0x108], eax
jne 0x41ebec
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
jmp 0x41e46f
mov dword [ebx + 0x48], 0
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x41dc32
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.004192f4
pop edi
mov ebx, dword [ebp - 0x10c]
mov byte [ebx], al
mov eax, dword [ebp - 0xf8]
mov dword [0x4520e4], eax
mov eax, 1
jmp 0x41c013
cmp dword [ebx + 0x3790], 0x3e8
jne 0x41e547
mov esi, dword [ebp - 0x108]
test esi, esi
jne 0x41e547
cmp edi, 2
jle 0x41e547
mov eax, dword [ebp - 0x10c]
jmp 0x41e976
sub edi, 1
cmp edi, 2
je 0x41e547
cmp byte [eax + edi], 0
je 0x41e96a
jmp 0x41e547
mov eax, 1
mov dword [ebp - 0x110], 0x44d
cmp edi, 0x3e9
jne 0x41e99c
test al, al
jne 0x41e9da
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 0x41db2a
cmp edi, 0x3e8
je 0x41c880
jmp 0x41d47f
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 0x41c880
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 0x41f365
test al, 2
je 0x41ea2a
movsw word es:[edi], word [esi]
test al, 1
je 0x41dd65
movsb byte es:[edi], byte [esi]
jmp 0x41dd65
mov esi, dword [ebp - 0x124]
cmp eax, esi
jg 0x41c4b8
cmp dword [ebp - 0x120], 0xfffffc18
je 0x41f6a5
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x37a0], eax
xor ecx, ecx
mov esi, dword [ebx + 0x90]
jmp 0x41c78c
cmp eax, 0x44f
setle al
jmp 0x41e990
cmp dword [ebx + 0x3770], 1
je 0x41f1b0
test ecx, ecx
je 0x41f661
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 0x41de20
push 0xc
push dword [ebp - 0x108]
push dword [ebp - 0x118]
call fcn.00418414
add esp, 0xc
jmp 0x41de0c
lea eax, [ebp - 0xc8]
push eax
push 0x2726
push dword [ebp - 0xf4]
call fcn.0041a058
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3e9
je 0x41f32a
mov ecx, dword [ebp - 0x150]
test dword [ebp - 0x108], ecx
je 0x41e343
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a058
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a058
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a058
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.0040e060
add esp, 0x18
test eax, eax
js 0x41f473
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a058
push 0xfbc
push dword [ebp - 0xf4]
call fcn.0041a058
push esi
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0x20
mov byte [ebp - 0x129], 1
cmp eax, 0x3e8
jne 0x41e36e
jmp 0x41e469
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.0041a058
push 0
push 0x271a
push dword [ebp - 0xf4]
call fcn.0041a058
push 0
push 0x2712
push dword [ebp - 0xf4]
call fcn.0041a058
add esp, 0x20
push 0
push 0xfa6
push dword [ebp - 0xf4]
call fcn.0041a058
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a058
add esp, 0x18
cmp dword [ebx + 0x3790], 0x3e9
mov edx, dword [ebp - 0xe8]
je 0x41f63c
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.0040e060
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.0040e060
add esp, 0x30
test eax, eax
js 0x41f473
lea eax, [ebp - 0xd8]
push eax
push 0xfbf
push dword [ebp - 0xf4]
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xe8], eax
add esp, 0xc
jmp 0x41e469
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x130], eax
jmp 0x41c24e
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.00416758
add esp, 0xc
mov dword [ebx + 0x24], eax
test esi, esi
jne 0x41cbfe
mov esi, dword [ebp - 0x114]
sub eax, esi
mov dword [ebp - 0x114], eax
fld dword [0x4474f0]
fimul dword [ebp - 0x114]
fld qword [0x4474f8]
fmulp st(1)
sub esp, 8
fstp qword [esp]
call sub.MSVCR80.DLL_exp
fstp dword [ebp - 0x114]
fld dword [ebp - 0x114]
fsubr dword [0x447480]
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 0x41cd67
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 0x41f498
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 0x41f4a3
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 0x41ce7e
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 [0x4474e8]
faddp st(3)
fxch st(3)
fmul st(5)
fxch st(1)
fmul st(6)
fadd dword [0x4474e8]
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 0x41eed0
fstp st(3)
fstp st(1)
fstp dword [ebx + 0x3780]
fstp dword [ebx + 0x3788]
jmp 0x41cab2
lea ecx, [edi - 0x3e8]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x160], 0
jmp 0x41c385
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
je 0x41f5c1
cmp eax, 0x2ee0
je 0x41f696
cmp eax, 0x3e80
mov eax, 0x44f
cmovne eax, dword [ebp - 0x110]
mov dword [ebp - 0x110], eax
jmp 0x41e836
cmp edi, 0x3e8
sete byte [ebp - 0xe8]
xor esi, esi
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xf0], 0
jmp 0x41c733
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.004191e0
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 0x41f099
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x134]
add edx, edx
add edx, edx
add edx, esi
jmp 0x41f081
fstp st(1)
fld dword [0x4474c8]
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 0x41f099
fld dword [0x447484]
fmul dword [esi]
fld dword [0x4474c4]
fxch st(1)
fcomi st(1)
ja 0x41f058
fstp st(0)
jmp 0x41f066
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.00428210
mov dword [ebx + 0x48], 0
add esp, 0x20
jmp 0x41ce95
mov esi, 0x1f40
jmp 0x41cd7e
push 0x3c
call fcn.004377fc
shl eax, 8
mov ecx, eax
pop esi
jmp 0x41c9da
fld dword [ebp - 0xac]
jmp 0x41cfc9
push 0x1d4c0
call sub.MSVCR80.DLL_malloc
mov dword [ebp - 0xe8], eax
mov dword [0x4520e8], eax
pop eax
jmp 0x41d4c2
fld dword [0x4474d0]
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 + 0x447d60]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
fld dword [ebp - 0xe8]
fcompi st(1)
fstp st(0)
jbe 0x41f5da
fld dword [0x4474d0]
fmul dword [ebx + 0x46d0]
fstp dword [ebx + 0x46d0]
jmp 0x41d7ee
cmp esi, 0x3e80
jg 0x41c550
mov eax, dword [ebx + 0x37a0]
cmp eax, 0x44f
jle 0x41c52a
jmp 0x41c7be
xor esi, esi
jmp 0x41e2db
mov eax, dword [ebp - 0xe8]
cmp eax, 0x7d00
jg 0x41f6da
cmp eax, 0x3e7f
jg 0x41e5ad
mov dword [ebx + 0x5c], 0
test ecx, ecx
jne 0x41ddde
cmp dword [ebx + 0x70], 2
jne 0x41ddd2
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f20b
cmp dword [ebp - 0xf0], 0x3fff
jg 0x41ddd2
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 [0x447504]
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 0x41f8f3
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 [0x447488]
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 0x41f286
fstp st(1)
mov esi, dword [ebp - 0xe8]
cmp dword [ebp - 0xe0], esi
jle 0x41f315
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 [0x447488]
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 0x41f2ee
fstp st(0)
jmp 0x41f317
fstp st(0)
movzx eax, word [ebp - 0xf0]
mov word [ebx + 0x3774], ax
jmp 0x41ddd2
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.0041a058
add esp, 0xc
jmp 0x41eafa
mov esi, 0x11
jmp 0x41e2db
test edi, 1
jne 0x41f8d2
test edi, 2
jne 0x41f8be
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41ea24
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 0x41f401
fld dword [0x4474cc]
fcompi st(1)
fstp st(0)
jbe 0x41e506
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 + 0x447d60]
mov dword [ebp - 0xe8], esi
fidiv dword [ebp - 0xe8]
fmul dword [0x447508]
add esp, 0xc
fld dword [ebp - 0xf4]
fcompi st(1)
fstp st(0)
jb 0x41f929
jmp 0x41f405
fstp st(0)
fstp st(0)
mov eax, dword [ebx + 0x46cc]
add eax, 1
mov dword [ebx + 0x46cc], eax
cmp eax, 0xa
jle 0x41f42c
cmp eax, 0x1e
jle 0x41f74f
mov dword [ebx + 0x46cc], 0xa
mov eax, dword [ebp - 0x6c]
jmp 0x41e512
push eax
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
push dword [ebp - 0x118]
push dword [ebp - 0xfc]
push 0
push dword [ebp - 0xe0]
push dword [ebp - 0x100]
push esi
call fcn.0040e060
mov edi, eax
add esp, 0x24
test eax, eax
jns 0x41e8b0
mov eax, dword [ebp - 0xf8]
mov dword [0x4520e4], eax
mov eax, 0xfffffffd
jmp 0x41c013
fldz
fchs
jmp 0x41be77
xor eax, eax
jmp 0x41c394
mov dword [ebx + 0x40], ecx
test al, al
jne 0x41eea0
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.00416758
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
imul eax, ecx
cdq
idiv dword [ebp - 0x124]
mov dword [ebx + 0x40], eax
jmp 0x41ce7e
push 1
push dword [ebp - 0x150]
push dword [ebp - 0x118]
call fcn.00418414
mov edi, dword [ebx + 0x3790]
add esp, 0xc
bsr eax, dword [ebp - 0x6c]
not eax
add eax, dword [ebp - 0x74]
cmp edi, 0x3e9
je 0x41f824
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 0x41de3e
push 1
push 0xfa6
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
push dword [ebx + 0x98]
push 0xfb4
push esi
call fcn.0041a058
push dword [ebx + 0xa0]
push 0xfa2
push esi
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x24
jmp 0x41df0e
mov dword [ebp - 0x110], 0x44d
jmp 0x41e836
mov eax, 0xffffffff
jmp 0x41c013
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 + 0x447d60]
mov dword [ebp - 0xf0], esi
fidiv dword [ebp - 0xf0]
add esp, 0xc
jmp 0x41f17c
mov ecx, 0x44d
jmp 0x41e63b
and ecx, 1
jne 0x41f916
test edi, 2
jne 0x41f902
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x41dfd3
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xe8], edi
push edi
push dword [ebp - 0x118]
call fcn.004188c4
pop eax
pop edx
mov edx, dword [ebp - 0xfc]
jmp 0x41ec8c
cmp dword [ebx + 0x70], 2
jne 0x41ea91
movzx eax, word [ebx + 0x3774]
mov esi, dword [ebx + 0x5c]
mov dword [ebp - 0xf0], esi
cmp ax, 0x3fff
jle 0x41f20b
cmp esi, 0x3fff
jle 0x41f20b
jmp 0x41ddde
mov dword [ebp - 0x110], 0x44e
jmp 0x41e836
mov ecx, 1
mov esi, dword [ebx + 0x90]
jmp 0x41c78c
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 0x41cd2f
mov dword [ebx + 0x5c], 0x4000
test ecx, ecx
jne 0x41ea91
cmp dword [ebx + 0x70], 2
jne 0x41ea91
movzx eax, word [ebx + 0x3774]
mov dword [ebp - 0xf0], 0x4000
cmp ax, 0x3fff
jg 0x41ddde
jmp 0x41f20b
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
mov esi, dword [ebp - 0xf4]
push esi
call fcn.0041a058
push 0
push 0xfb4
push esi
call fcn.0041a058
mov eax, dword [ebx + 0x3790]
mov dword [ebp - 0xf0], eax
add esp, 0x18
jmp 0x41df0e
mov dword [ebx + 0x46d8], 0
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xe0]
mov esi, dword [ebx + 0x3790]
jmp 0x41e908
mov ecx, dword [ebx + 0x94]
test ecx, ecx
je 0x41e469
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 0x41e46f
test eax, eax
je 0x41e413
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push dword [ebp - 0xf4]
call fcn.0041a058
mov eax, dword [ebx + 0x94]
add esp, 0xc
jmp 0x41e413
fld dword [0x4474a4]
fld dword [0x4474a8]
mov eax, 0xd
jmp 0x41cc4d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41da3f
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41da33
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.004188f4
mov edi, dword [ebx + 0x3790]
add esp, 0xc
jmp 0x41de3e
fld dword [0x4474b4]
fld dword [0x4474b8]
mov eax, 0xf
jmp 0x41cc4d
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41e5f7
movzx ecx, byte [esi]
mov byte [ebp - 0xf0], cl
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41e5eb
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41f37d
movzx ecx, byte [esi]
mov byte [ebx + 0x37c8], cl
lea edi, [ebx + 0x37c9]
add esi, 1
sub eax, 1
jmp 0x41f371
fldz
jmp 0x41cccb
fstp st(1)
xor eax, eax
mov dword [ebp - 0xfc], eax
jmp 0x41f2cb
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x41f630
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
sub eax, 1
jmp 0x41f624
mov eax, dword [ebp - 0x6c]
jmp 0x41e508
mov esi, dword [ebx + 0x90]
mov ecx, 0x32
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0xfc], eax
jmp 0x41c880
cmp edi, 0x3ea
sete dl
mov eax, edi
mov edi, dword [ebp - 0xf0]
jmp 0x41bf90