Function at 0x6d7370
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, 0x738
mov eax, dword [ecx + 0x10]
mov ebx, dword [ecx + 0xc]
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [ebp - 0x6c4], eax
mov eax, dword [0x9064f4]
mov dword [ebp - 0x6c0], ebx
test eax, eax
je 0x6d7580
mov eax, dword [0x7735f0]
test eax, eax
je 0x6d7580
mov dword [ebp - 0x698], 0
pxor xmm0, xmm0
mov dword [ebp - 0x694], 0
mov dword [ebp - 0x690], 0
movups xmmword [ebp - 0x678], xmm0
test ebx, ebx
je 0x6d7590
call fcn.0069a510
mov eax, dword [0x901f4c]
mov dword [esp + 4], 0x82c9fa
mov dword [esp], ebx
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
call fcn.00531810
mov dword [ebp - 0x6b4], eax
mov eax, dword [0x7735ec]
mov dword [esp + 4], 0x82ca33
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6d8], eax
mov dword [ebp - 0x688], eax
mov eax, dword [0x901f48]
mov dword [esp + 4], 0x82ca3d
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6d4], eax
mov dword [ebp - 0x684], eax
mov eax, dword [0x901f44]
mov dword [esp + 4], 0x82ca48
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6e0], eax
mov dword [ebp - 0x680], eax
mov eax, dword [0x901f40]
mov dword [esp + 4], 0x82ca53
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x67c], eax
mov eax, dword [0x7735e8]
mov dword [esp + 4], 0x82ca25
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6d0], eax
mov eax, dword [0x7735e4]
mov dword [esp + 4], 0x82ca17
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00531810
mov dword [ebp - 0x6a0], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x82ce92
mov dword [esp], ebx
call fcn.00531810
or eax, edx
mov eax, dword [ebp - 0x6d0]
mov byte [ebp - 0x6f4], 1
setne byte [ebp - 0x6a8]
mov edx, eax
and eax, 4
and edx, 2
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x6ec], edx
mov edx, dword [ebp - 0x6b4]
cmp edx, 1
je 0x6d763f
cmp edx, 2
je 0x6d8a50
mov eax, 0xffffffff
test edx, edx
je 0x6d76b0
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov eax, dword [0x901f4c]
mov edx, dword [0x901f44]
mov byte [ebp - 0x6a8], 1
mov ecx, dword [0x901f48]
mov ebx, dword [0x901f40]
mov dword [ebp - 0x6b4], eax
mov eax, dword [0x7735ec]
movd xmm1, edx
mov dword [ebp - 0x6e0], edx
movd xmm3, ebx
movd xmm4, ecx
mov edx, dword [0x7735e4]
movd xmm0, eax
mov dword [ebp - 0x6d8], eax
punpckldq xmm1, xmm3
mov eax, dword [0x7735e8]
mov dword [ebp - 0x6a0], edx
punpckldq xmm0, xmm4
mov edx, eax
mov dword [ebp - 0x6d0], eax
punpcklqdq xmm0, xmm1
and edx, 2
mov dword [ebp - 0x6d4], ecx
mov dword [ebp - 0x6ec], edx
mov edx, eax
shr eax, 3
and edx, 4
xor eax, 1
mov dword [ebp - 0x6e8], ebx
mov dword [ebp - 0x6b8], edx
mov edx, dword [ebp - 0x6b4]
and eax, 1
mov byte [ebp - 0x6f4], al
movups xmmword [ebp - 0x688], xmm0
cmp edx, 1
jne 0x6d756a
mov dword [esp], 0x82cd20
call fcn.007101e8
lea ebx, [ebp - 0x618]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00723a00
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82d0c4
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d0c4
mov edx, 0x82cc65
cmove eax, edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x6f0], eax
mov dword [esp], eax
call fcn.00723a00
mov dword [ebp - 0x708], 2
jmp 0x6d7719
mov dword [esp], 0x82cd20
call fcn.007101e8
lea ebx, [ebp - 0x618]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00723a00
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82d088
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d088
mov edx, 0x82cc3c
cmove eax, edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x6f0], eax
mov dword [esp], eax
call fcn.00723a00
mov dword [ebp - 0x708], 4
movzx eax, byte [0x901f50]
mov ecx, dword [ebp - 0x6b8]
lea edx, [eax + 1]
add eax, 4
test ecx, ecx
cmove edx, eax
mov dword [ebp - 0x704], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x22
mov edx, dword [ebp - 0x6c4]
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x6c0]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00559da0
cmp byte [0x90251c], 0
mov dword [ebp - 0x69c], eax
je 0x6d7e20
mov edx, dword [ebp - 0x6c4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x6c8], ecx
test ecx, ecx
je 0x6d7e20
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], 3
mov dword [esp], ebx
call fcn.004e6df0
mov dword [ebp - 0x70c], 0
sub esp, 0x10
cmp byte [ebp - 0x6a8], 0
jne 0x6d7e95
mov eax, dword [0x9064fc]
mov edi, dword [eax + 4]
test edi, edi
je 0x6d95cc
lea esi, [ebp - 0x418]
jmp 0x6d77fa
mov edi, dword [edi]
test edi, edi
je 0x6d79d8
cmp byte [edi + 0x86], 0
je 0x6d77f0
movzx ebx, byte [edi + 0x83]
cmp bl, 8
je 0x6d7818
cmp byte [0x901f50], 0
je 0x6d77f0
mov eax, dword [edi + 0x90]
test eax, eax
je 0x6d77f0
lea eax, [ebp - 0x650]
pxor xmm2, xmm2
mov dword [ebp - 0x700], eax
mov eax, dword [edi + 0x68]
movups xmmword [ebp - 0x640], xmm2
movups xmmword [ebp - 0x630], xmm2
mov dword [ebp - 0x634], edi
movups xmmword [ebp - 0x650], xmm2
movups xmmword [ebp - 0x628], xmm2
mov dword [esp], eax
call fcn.00723840
cmp bl, 8
mov dword [ebp - 0x650], eax
mov ebx, dword [edi + 0xa8]
mov eax, dword [ebp - 0x6a0]
sete byte [ebp - 0x64c]
mov dword [ebp - 0x61c], eax
test ebx, ebx
je 0x6d78cc
lea eax, [ebx + 1]
mov dword [ebp - 0x648], eax
cmp eax, 1
jle 0x6d78cc
mov dword [esp], ebx
call fcn.00699cd0
fild dword [ebx*4 + 0x901f20]
fdiv dword [0x82dfe0]
fsubr dword [0x82dfe4]
fxch st(1)
fmul dword [0x82dfe8]
fmulp st(1)
fstp qword [ebp - 0x6a8]
cvttsd2si eax, qword [ebp - 0x6a8]
mov dword [ebp - 0x644], eax
mov eax, dword [edi + 0x70]
test eax, eax
je 0x6d78db
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x630], eax
mov eax, dword [edi + 0xa8]
add dword [ebp - 0x678], 1
lea edx, [eax - 1]
cmp edx, 1
jbe 0x6d8c40
cmp eax, 3
je 0x6d9453
jg 0x6d8f2a
lea esi, [esi]
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0069e6a0
mov dword [esp], esi
call fcn.00723840
mov dword [ebp - 0x62c], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x6d8ea8
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x628], eax
mov eax, dword [edi + 0x50]
test eax, eax
je 0x6d8ee0
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x624], eax
mov eax, dword [edi + 0x54]
test eax, eax
je 0x6d7979
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x620], eax
mov ecx, dword [ebp - 0x694]
cmp ecx, dword [ebp - 0x690]
je 0x6d9523
mov eax, dword [ebp - 0x620]
mov edx, dword [ebp - 0x61c]
add ecx, 0x38
movdqu xmm5, xmmword [ebp - 0x650]
movdqu xmm6, xmmword [ebp - 0x640]
movdqu xmm7, xmmword [ebp - 0x630]
mov dword [ecx - 8], eax
movups xmmword [ecx - 0x38], xmm5
movups xmmword [ecx - 0x28], xmm6
movups xmmword [ecx - 0x18], xmm7
mov dword [ecx - 4], edx
mov edi, dword [edi]
mov dword [ebp - 0x694], ecx
test edi, edi
jne 0x6d77fa
lea esi, [esi]
mov ebx, dword [ebp - 0x66c]
mov ecx, dword [ebp - 0x670]
mov edx, dword [ebp - 0x674]
mov eax, dword [ebp - 0x678]
mov edi, dword [ebp - 0x698]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x82db60
mov dword [esp], 6
call fcn.004fc8f0
mov esi, dword [ebp - 0x694]
mov eax, dword [0x9003c0]
mov ecx, dword [ebp - 0x6d8]
mov edx, dword [ebp - 0x6e8]
mov dword [ebp - 0x6f4], eax
mov ebx, esi
mov eax, dword [ebp - 0x6e0]
sub ebx, edi
mov dword [ebp - 0x6a0], esi
sar ebx, 3
or eax, ecx
or eax, edx
imul ebx, ebx, 0xb6db6db7
or eax, dword [ebp - 0x6d4]
setne dl
cmp esi, edi
setne al
or dl, al
mov byte [ebp - 0x6d4], dl
je 0x6d95d9
cmp ebx, ecx
jb 0x6d8b80
mov dword [ebp - 0x6a8], 0
xor edx, edx
xor ebx, ebx
lea esi, [esi]
lea esi, [esi]
mov eax, dword [ebp + ebx*4 - 0x678]
mov esi, dword [ebp + ebx*4 - 0x688]
mov dword [ebp - 0x6b0], eax
cmp eax, esi
jge 0x6d7bac
mov dword [esp + 8], 0x6c1
cmp ebx, 2
je 0x6d81f0
cmp ebx, 3
je 0x6d81c8
cmp ebx, 1
je 0x6d8218
mov dword [esp + 4], 0x82d1b7
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d1b7
mov edx, 0x82d2c2
cmove eax, edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x598]
mov dword [ebp - 0x6a8], eax
mov dword [esp], eax
call fcn.00723a00
mov dword [esp], 0x82dc10
call fcn.007101e8
mov ecx, dword [ebp - 0x6b0]
mov dword [esp + 0x14], ecx
mov edx, dword [ebp - 0x6a8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x418]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], 0x400
mov dword [esp], eax
call fcn.00723ce0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x6c0]
mov dword [esp], eax
call fcn.0053b380
lea eax, [ebp - 0x418]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x6c8]
call fcn.004e6cd0
mov dword [ebp - 0x6a8], 0xb
movzx edx, byte [ebp - 0x6d4]
sub esp, 0x10
add ebx, 1
cmp ebx, 4
jne 0x6d7a90
mov eax, dword [ebp - 0x6d0]
mov ebx, edi
not eax
test dl, al
jne 0x6d807f
mov esi, dword [ebp - 0x69c]
lea eax, [esi + 0x20]
mov dword [ebp - 0x6b0], eax
mov dword [esp], eax
call fcn.00723bd8
mov ebx, dword [esi + 0x1c]
test ebx, ebx
je 0x6d93e6
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x6d7c38
mov dword [ebp - 0x6d8], eax
mov esi, ecx
mov dword [ebp - 0x6d0], ebx
mov ebx, eax
lea esi, [esi]
mov edx, dword [ebx]
lea ecx, [ebx + 8]
cmp edx, ecx
je 0x6d7c19
mov dword [esp], edx
call fcn.00712028
add ebx, 0x18
cmp esi, ebx
jne 0x6d7c08
mov ebx, dword [ebp - 0x6d0]
mov eax, dword [ebp - 0x6d8]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x69c]
mov ebx, dword [eax + 0x1c]
mov esi, dword [ebp - 0x6f0]
lea eax, [ebp - 0x660]
mov dword [ebp - 0x668], eax
mov dword [esp], esi
call fcn.00723a18
mov dword [esp], esi
lea ecx, [ebp - 0x668]
add eax, esi
mov dword [esp + 4], eax
call fcn.006d3b30
sub esp, 8
lea eax, [ebp - 0x668]
mov ecx, ebx
mov dword [esp], eax
call fcn.00733700
mov eax, dword [ebp - 0x668]
lea esi, [ebp - 0x660]
sub esp, 4
cmp eax, esi
je 0x6d7c94
mov dword [esp], eax
call fcn.00712028
mov eax, dword [ebp - 0x6b0]
mov dword [esp], eax
call fcn.00723bd0
mov esi, dword [ebp - 0x69c]
lea eax, [esi + 0x30]
mov dword [ebp - 0x6d0], eax
mov dword [esp], eax
call fcn.00723bd8
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x6d93b8
mov dword [esi + 0x34], 0
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
cmp eax, esi
je 0x6d7d0f
mov dword [ebp - 0x6b0], ecx
mov ebx, eax
mov dword [ebp - 0x6d8], eax
lea esi, [esi]
mov edx, dword [ebx]
lea ecx, [ebx + 8]
cmp edx, ecx
je 0x6d7cf9
mov dword [esp], edx
call fcn.00712028
add ebx, 0x18
cmp esi, ebx
jne 0x6d7ce8
mov ecx, dword [ebp - 0x6b0]
mov eax, dword [ebp - 0x6d8]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x418]
mov ebx, edi
mov dword [ebp - 0x6b0], eax
cmp dword [ebp - 0x6a0], edi
jne 0x6d7de8
jmp 0x6d961f
test ecx, ecx
je 0x6d8c20
test eax, eax
mov esi, 0x82ca92
cmove eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x82dc51
mov dword [esp + 4], 0x400
mov eax, dword [ebp - 0x6b0]
mov dword [esp], eax
call fcn.00723ce0
mov eax, dword [ebp - 0x69c]
lea edx, [ebp - 0x660]
mov esi, dword [eax + 0x2c]
mov dword [ebp - 0x668], edx
mov edx, dword [ebp - 0x6b0]
mov dword [esp], edx
call fcn.00723a18
mov edx, dword [ebp - 0x6b0]
add eax, edx
mov dword [esp], edx
lea edx, [ebp - 0x668]
mov dword [esp + 4], eax
mov ecx, edx
call fcn.006d3b30
sub esp, 8
lea edx, [ebp - 0x668]
mov ecx, esi
mov dword [esp], edx
call fcn.00733700
mov eax, dword [ebp - 0x668]
lea edx, [ebp - 0x660]
sub esp, 4
cmp eax, edx
je 0x6d7dd9
mov dword [esp], eax
call fcn.00712028
add ebx, 0x38
cmp dword [ebp - 0x6a0], ebx
je 0x6d8240
mov edx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
test edx, edx
jne 0x6d7d30
test eax, eax
je 0x6d8a20
mov edx, 0x82ca92
test ecx, ecx
jne 0x6d7d42
mov ecx, edx
mov edx, 0x82ca92
jmp 0x6d7d42
mov dword [esp], 0x118
call fcn.00712010
mov dword [ebp - 0x70c], eax
mov ecx, eax
mov dword [esp + 8], esi
mov esi, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004d4970
sub esp, 0x14
mov ecx, esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.004dbf50
sub esp, 0x10
cmp byte [ebp - 0x6a8], 0
mov dword [ebp - 0x6c8], eax
je 0x6d77d6
call fcn.00512f80
mov dword [ebp - 0x6a8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.UsbTestSticks
mov dword [esp], eax
call fcn.00514180
test al, al
je 0x6d950c
mov dword [ebp - 0x718], 0
jmp 0x6d7ee0
mov dword [esp], ebx
call fcn.007238f0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x6a8]
mov dword [esp], eax
call fcn.005135e0
test eax, eax
je 0x6d8df8
mov dword [esp], eax
call fcn.00723840
mov dword [esp + 4], 0x3d
mov ebx, eax
mov dword [esp], eax
call fcn.007239f0
mov esi, eax
test eax, eax
je 0x6d7ed8
mov dword [esp + 8], 0
mov dword [esp + 4], 0x82df94
mov dword [esp], ebx
call fcn.005043f0
test al, al
jne 0x6d7ed8
mov byte [esi], 0
add esi, 1
mov dword [esp], esi
call fcn.00507980
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov dword [ebp - 0x6f8], eax
mov eax, edi
sub eax, esi
cmp eax, 0x48
ja 0x6d9543
cmp esi, edi
je 0x6d7f88
lea esi, [esi]
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x6d7f79
mov dword [esp], eax
call fcn.00712028
add esi, 0x18
cmp esi, edi
jne 0x6d7f68
mov eax, dword [ebp - 0x6f8]
mov edi, dword [eax]
test edi, edi
je 0x6d7f94
mov dword [esp], edi
call fcn.00712028
mov eax, dword [ebp - 0x6f8]
mov dword [esp], eax
call fcn.00712028
jmp 0x6d7ed8
mov dword [esp + 4], 0
mov dword [esp], 2
mov ecx, dword [ebp - 0x6c8]
call fcn.004e6b70
sub esp, 8
mov ebx, eax
mov dword [esp], 0x82deb6
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov esi, dword [ebp - 0x6f0]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.004da140
sub esp, 0x18
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x6a8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x418]
mov dword [esp], eax
call fcn.004ed090
mov dword [esp], 0x82dec1
mov esi, eax
call fcn.007101e8
mov dword [esp + 0x14], 0
mov ecx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004da140
mov ebx, dword [ebp - 0x698]
sub esp, 0x18
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call fcn.0054c740
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x6a8]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0x5309000
call fcn.004ec0c0
mov ecx, eax
test eax, eax
je 0x6d80f6
add dword [eax + 0x38], 1
mov esi, dword [ebp - 0x6f4]
adc dword [eax + 0x3c], 0
mov eax, dword [0x9003c0]
xor edx, edx
sub eax, esi
add dword [ecx + 0x48], eax
adc dword [ecx + 0x4c], edx
cmp byte [0x90251c], 0
jne 0x6d8af8
cmp dword [ebp - 0x6a0], edi
je 0x6d8ac0
mov esi, dword [ebp - 0x6a0]
lea esi, [esi]
mov eax, dword [edi]
test eax, eax
je 0x6d812c
mov dword [esp], eax
call fcn.007238f0
mov dword [edi], 0
mov eax, dword [edi + 0x20]
test eax, eax
je 0x6d8142
mov dword [esp], eax
call fcn.007238f0
mov dword [edi + 0x20], 0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x6d8158
mov dword [esp], eax
call fcn.007238f0
mov dword [edi + 0x24], 0
mov eax, dword [edi + 0x28]
test eax, eax
je 0x6d816e
mov dword [esp], eax
call fcn.007238f0
mov dword [edi + 0x28], 0
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x6d8184
mov dword [esp], eax
call fcn.007238f0
mov dword [edi + 0x2c], 0
mov eax, dword [edi + 0x30]
test eax, eax
je 0x6d819a
mov dword [esp], eax
call fcn.007238f0
mov dword [edi + 0x30], 0
add edi, 0x38
cmp esi, edi
jne 0x6d8118
cmp byte [0x90251c], 0
je 0x6d8ac0
test ebx, ebx
je 0x6d81be
mov dword [esp], ebx
call fcn.00712028
xor eax, eax
jmp 0x6d7580
mov dword [esp + 4], 0x82d294
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d294
mov edx, 0x82cc96
jmp 0x6d7aed
mov dword [esp + 4], 0x82d214
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d214
mov edx, 0x82d284
jmp 0x6d7aed
mov dword [esp + 4], 0x82d1d5
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d1d5
mov edx, 0x82d2b5
jmp 0x6d7aed
mov eax, dword [ebp - 0x6d0]
mov dword [esp], eax
call fcn.00723bd0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call fcn.0054b8d0
mov dword [ebp - 0x6b0], edi
xor esi, esi
mov dword [ebp - 0x6d8], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x6d8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call fcn.0054c4c0
mov eax, dword [ebp - 0x6b0]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6d89f8
mov edx, dword [ebp - 0x6b4]
cmp edx, 1
je 0x6d8f90
cmp edx, 2
je 0x6d9360
test edx, edx
je 0x6d8fc0
mov dword [esp + 4], 0x14
mov dword [esp], 0xa
call fcn.004fc390
mov dword [esp], esi
call fcn.004ec6f0
test al, al
je 0x6d8329
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5309000
mov eax, dword [ebp - 0x6c0]
mov dword [esp], eax
call fcn.004ed170
mov dword [esp], 0x90
call fcn.004eddb0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x6a8]
mov dword [esp], eax
call fcn.004ec660
mov dword [ebp - 0x6a8], eax
mov eax, dword [ebp - 0x6b0]
mov dword [eax + 0x14], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov ebx, dword [ebp - 0x6d8]
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call fcn.0054c5e0
add ebx, 1
mov dword [ebp - 0x6d8], ebx
nop
cmp byte [0x9003b4], 0
jne 0x6d83a5
cmp byte [0x9003b5], 0
jne 0x6d83a5
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x8f], 0
je 0x6d8a08
mov dword [esp], 0xa
call fcn.004fc370
mov edx, dword [0x9003b8]
test edx, edx
je 0x6d8880
mov dword [esp + 8], 1
mov dword [esp + 4], 5
mov eax, dword [ebp - 0x6a8]
mov dword [esp], eax
call fcn.004ec660
mov dword [ebp - 0x6a8], eax
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x704]
mov esi, dword [ebp - 0x708]
lea eax, [eax + esi + 2]
mov dword [esp], eax
mov ecx, dword [ebp - 0x6c8]
call fcn.004e6b70
sub esp, 8
mov dword [ebp - 0x6b0], eax
mov ecx, eax
mov dword [esp + 4], 0
mov dword [esp], 0xf
call fcn.004d9f50
sub esp, 8
mov byte [eax + 0xbc], 1
mov ebx, eax
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82dd21
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dd21
mov edx, 0x82daae
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp byte [0x901f50], 0
jne 0x6d8f40
mov eax, dword [ebp - 0x6b8]
mov dword [esp + 8], 0x6c1
test eax, eax
je 0x6d8cd0
mov dword [esp + 4], 0x82dd5c
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dd5c
mov edx, 0x82dab9
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp dword [ebp - 0x6b4], 1
jle 0x6d945f
mov dword [esp], 0x82de81
call fcn.007101e8
mov dword [esp + 8], 0
mov ecx, ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov ebx, edi
cmp dword [ebp - 0x6a0], edi
jne 0x6d861c
jmp 0x6d7fb0
mov eax, dword [ebp - 0x6b8]
test eax, eax
jne 0x6d86a4
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x6d88d0
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov ecx, esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov ecx, esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp dword [ebp - 0x6b4], 1
jle 0x6d86d1
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x20]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], eax
lea eax, [ebp - 0x418]
mov dword [esp], eax
call fcn.004ed090
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
add ebx, 0x38
cmp dword [ebp - 0x6a0], ebx
je 0x6d7fb0
mov dword [esp + 4], 0
mov dword [esp], 0xf
mov ecx, dword [ebp - 0x6b0]
call fcn.004d9f50
mov esi, eax
mov eax, dword [ebx + 0x1c]
sub esp, 8
test eax, eax
je 0x6d8950
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov eax, dword [eax + 0xb8]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp byte [0x901f50], 0
je 0x6d8528
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x24]
mov dword [esp], eax
call fcn.004d3600
mov eax, dword [ebp - 0x6b8]
sub esp, 0xc
test eax, eax
je 0x6d8536
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x20]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp dword [ebp - 0x6b4], 1
jg 0x6d85cb
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6d89a0
lea ecx, [ebp - 0x418]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov eax, dword [eax + 0xa8]
mov dword [esp], eax
call fcn.00699580
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82ccc3
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82ccc3
mov ecx, 0x82cbe5
mov dword [esp + 8], 0
cmove eax, ecx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x418]
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.00699c20
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
mov eax, dword [ebp - 0x6b4]
sub esp, 0xc
test eax, eax
jne 0x6d8865
fild dword [ebx + 0x10]
fdiv dword [0x82dfe8]
mov eax, dword [ebx + 8]
fstp dword [ebp - 0x6d0]
fldz
fstp dword [ebp - 0x6c0]
cmp eax, 1
jg 0x6d8b40
jmp 0x6d87c0
fstp st(0)
lea esi, [esi]
mov eax, dword [ebp - 0x6ec]
test eax, eax
je 0x6d87ea
fld qword [0x82dff0]
fld dword [ebp - 0x6d0]
fdiv st(1)
fstp dword [ebp - 0x6d0]
fdivr dword [ebp - 0x6c0]
fstp dword [ebp - 0x6c0]
mov eax, dword [ebx + 0x18]
test eax, eax
js 0x6d8e60
mov eax, dword [ebx + 0x10]
test eax, eax
jg 0x6d8c50
mov byte [ebp - 0x418], 0
lea eax, [ebp - 0x418]
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
mov edx, dword [ebx + 8]
sub esp, 0xc
test edx, edx
je 0x6d883b
cmp byte [ebx + 4], 0
jne 0x6d9416
mov byte [ebp - 0x418], 0
lea eax, [ebp - 0x418]
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov eax, dword [ebp - 0x6b8]
test eax, eax
jne 0x6d85cb
jmp 0x6d85ab
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x90], 0
je 0x6d8380
lea esi, [esi]
nop
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x90], 0
jne 0x6d83bf
add dword [ebp - 0x6b0], 0x38
mov eax, dword [ebp - 0x6b0]
cmp dword [ebp - 0x6a0], eax
jne 0x6d827e
jmp 0x6d83e3
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
jne 0x6d8541
mov edx, dword [ebx + 0x30]
test edx, edx
jne 0x6d8541
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov ecx, esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004d3600
sub esp, 0xc
mov ecx, esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004d3600
jmp 0x6d859b
mov dword [esp], 0x82de88
call fcn.007101e8
mov dword [esp + 8], eax
lea eax, [ebp - 0x418]
mov dword [esp + 4], 0x82de94
mov dword [esp], eax
call fcn.00723cb0
lea eax, [ebp - 0x418]
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
jmp 0x6d8666
mov dword [esp + 8], 0
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004d3600
jmp 0x6d871e
mov esi, dword [ebp - 0x6b0]
cmp byte [esi + 4], 0
jne 0x6d9719
mov esi, dword [ebp - 0x6b0]
mov esi, dword [esi + 8]
mov dword [ebp - 0x6d0], esi
lea edx, [esi - 1]
cmp dword [eax + 0xa8], edx
jge 0x6d9360
lea esi, [esi]
mov esi, 0xb
jmp 0x6d82d7
mov eax, dword [0x9003b8]
test eax, eax
je 0x6d8898
jmp 0x6d83bf
mov eax, 0x82ca92
test ecx, ecx
jne 0x6d7e10
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6b0]
mov dword [esp], eax
call fcn.00723a00
jmp 0x6d7d6c
mov dword [esp], 0x82db13
call fcn.007101e8
lea ebx, [ebp - 0x618]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00723a00
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82d0f4
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82d0f4
mov edx, 0x82cc82
cmove eax, edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x6f0], eax
mov dword [esp], eax
call fcn.00723a00
mov dword [ebp - 0x708], 0
jmp 0x6d7719
mov eax, dword [ebp - 0x6a8]
mov dword [esp], eax
call fcn.004ed120
mov esi, dword [ebp - 0x70c]
mov dword [esi + 0xc8], eax
mov dword [esp], esi
call fcn.004d6520
mov dword [esp], 2
call fcn.00402690
jmp 0x6d81b2
mov esi, dword [ebp - 0x6c8]
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x6c4]
mov dword [esp], eax
call fcn.0053b400
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x6c4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0053c790
cmp dword [ebp - 0x6a0], edi
jne 0x6d810f
jmp 0x6d81a5
sub eax, 1
mov dword [esp], eax
call fcn.00699cd0
mov eax, dword [ebx + 8]
fst dword [ebp - 0x6c0]
cmp eax, 1
jle 0x6d87bb
fild dword [eax*4 + 0x901f1c]
fdiv dword [0x82dfe0]
fld1
fsubrp st(1)
fmulp st(1)
fstp dword [ebp - 0x6c0]
jmp 0x6d87c0
mov dword [esp], 0x82dbc4
call fcn.007101e8
mov dword [esp + 0x10], ebx
mov esi, dword [ebp - 0x6d8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x418]
mov dword [esp + 4], 0x400
mov dword [esp], esi
call fcn.00723ce0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x6c0]
mov dword [esp], eax
call fcn.0053b380
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], esi
mov ecx, dword [ebp - 0x6c8]
call fcn.004e6cd0
mov dword [ebp - 0x6a8], 0xb
movzx edx, byte [ebp - 0x6d4]
sub esp, 0x10
jmp 0x6d7a84
mov ecx, 0x82ca92
test eax, eax
jne 0x6d7d42
mov eax, 0x82ca92
mov ecx, eax
jmp 0x6d7d42
add dword [ebp - 0x674], 1
jmp 0x6d7910
fld dword [ebp - 0x6d0]
fstp qword [ebp - 0x6d0]
mov dword [esp], 0x82dea0
call fcn.007101e8
lea edx, [ebp - 0x218]
movsd xmm5, qword [ebp - 0x6d0]
mov dword [esp + 4], eax
mov dword [esp], edx
movsd qword [esp + 8], xmm5
call fcn.00723cb0
mov ecx, dword [ebx + 8]
lea edx, [ebp - 0x218]
test ecx, ecx
je 0x6d8f13
mov eax, dword [ebx + 0xc]
cmp dword [ebx + 0x10], eax
mov dword [esp + 0xc], edx
jl 0x6d8e7e
lea eax, [ebp - 0x418]
mov dword [esp + 8], 0x82deaa
mov dword [esp + 4], 0x200
mov dword [esp], eax
call fcn.00723ce0
jmp 0x6d8807
mov dword [esp + 4], 0x82dd80
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dd80
mov edx, 0x82dac5
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82dda0
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dda0
mov edx, 0x82dacc
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82ddc0
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82ddc0
mov edx, 0x82dad3
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
cmp dword [ebp - 0x6b4], 1
jle 0x6d945f
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82dd5c
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dd5c
mov edx, 0x82dab9
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
jmp 0x6d84e8
mov ebx, dword [ebp - 0x66c]
mov ecx, dword [ebp - 0x670]
mov edx, dword [ebp - 0x674]
mov eax, dword [ebp - 0x678]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x718]
mov dword [esp + 4], 0x82db24
mov dword [esp + 8], eax
mov dword [esp], 6
call fcn.004fc8f0
mov eax, dword [ebp - 0x6a8]
mov dword [esp], eax
call fcn.00512fa0
mov edi, dword [ebp - 0x698]
jmp 0x6d7a1a
lea edx, [ebp - 0x218]
mov dword [esp + 8], 0x200
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004fc630
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x418]
mov dword [esp + 8], 0x82de94
mov dword [esp + 4], 0x200
mov dword [esp], eax
call fcn.00723ce0
jmp 0x6d8807
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 4
mov dword [esp + 8], esi
mov eax, dword [edi + 0x40]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502f00
jmp 0x6d793d
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 4
mov dword [esp + 8], esi
mov eax, dword [edi + 0x44]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502f00
jmp 0x6d7956
lea eax, [ebp - 0x418]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00723a00
jmp 0x6d8807
add dword [ebp - 0x66c], 1
jmp 0x6d7910
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82dd3e
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dd3e
mov edx, 0x82dab3
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
jmp 0x6d8487
mov esi, dword [ebp - 0x6b0]
mov edx, dword [esi + 8]
lea ecx, [edx - 1]
cmp dword [eax + 0xa8], ecx
jl 0x6d89f8
test edx, edx
jne 0x6d9360
mov esi, 3
jmp 0x6d82d7
mov edx, dword [eax + 0xc0]
test edx, edx
je 0x6d89c3
mov ecx, dword [edx + 0x23c]
test ecx, ecx
je 0x6d8fe5
cmp byte [0x90251c], 0
jne 0x6d975a
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], edx
call fcn.0064de00
mov ebx, eax
mov eax, dword [ebp - 0x6b0]
mov eax, dword [eax + 0x1c]
test ebx, ebx
js 0x6d9a30
mov ebx, dword [eax + 0xc0]
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x6d96e1
cdq
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x6e4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [0x773508]
mov edx, dword [0x77350c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.007121f8
mov esi, dword [ebp - 0x6b0]
mov dword [ebx + 0x5a0], eax
mov eax, dword [esi + 0x34]
test eax, eax
jg 0x6d9068
mov eax, dword [0x7735e4]
mov dword [esi + 0x34], eax
imul eax, eax, 0x3e8
mov ebx, dword [0x9003c0]
mov dword [ebp - 0x718], 0
mov dword [ebp - 0x714], 0
mov dword [ebp - 0x71c], ebx
add eax, ebx
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x6b0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc0]
mov dword [eax + 0x598], 0
mov dword [eax + 0x59c], 0
lea esi, [esi]
mov eax, dword [ebp - 0x6b0]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x710]
mov esi, dword [ecx + 0xc0]
cmp ebx, eax
jae 0x6d96ff
mov eax, dword [esi + 0x5a0]
mov edx, dword [esi + 0x59c]
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
mov dword [ebp - 0x6d0], eax
mov dword [ebp - 0x6f8], eax
sar eax, 0x1f
mov dword [ebp - 0x6cc], eax
mov eax, dword [esi + 0x598]
mov dword [ebp - 0x6dc], edx
mov edx, ebx
mov ebx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6e0], eax
mov eax, ecx
mov ecx, dword [ebp - 0x6d0]
add ecx, dword [ebp - 0x6e0]
adc ebx, dword [ebp - 0x6dc]
mov dword [ebp - 0x700], eax
cmp ecx, eax
mov dword [ebp - 0x6fc], edx
mov eax, ebx
mov ebx, dword [ebp - 0x6fc]
mov ecx, dword [ebp - 0x700]
mov byte [ebp - 0x700], 0
sbb eax, ebx
jl 0x6d9184
movzx eax, byte [ebp - 0x6d4]
sub ecx, dword [ebp - 0x6e0]
sbb ebx, dword [ebp - 0x6dc]
mov dword [ebp - 0x6d0], ecx
mov dword [ebp - 0x6cc], ebx
mov dword [ebp - 0x6f8], ecx
mov byte [ebp - 0x700], al
mov ecx, dword [esi + 0x784]
mov dword [esp + 0x10], ecx
mov eax, dword [ebp - 0x6f8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x6e0]
mov edx, dword [ebp - 0x6dc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0064e160
mov esi, dword [ebp - 0x6b0]
mov ecx, dword [esi + 0x1c]
test eax, eax
js 0x6d9706
mov ebx, dword [ebp - 0x6e8]
mov esi, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x6d0]
mov ecx, dword [ecx + 0xc0]
imul esi, ebx
mov ebx, dword [ebp - 0x6e4]
imul ebx, eax
mov eax, dword [ebp - 0x6d0]
mul dword [ebp - 0x6e8]
add esi, ebx
add edx, esi
add dword [ebp - 0x718], eax
adc dword [ebp - 0x714], edx
xor eax, eax
xor edx, edx
cmp byte [ebp - 0x700], 0
jne 0x6d922a
mov eax, dword [ebp - 0x6d0]
mov edx, dword [ebp - 0x6cc]
add eax, dword [ecx + 0x598]
adc edx, dword [ecx + 0x59c]
mov dword [ecx + 0x598], eax
mov dword [ecx + 0x59c], edx
lea esi, [esi]
lea esi, [esi]
cmp byte [0x9003b4], 0
jne 0x6d9265
cmp byte [0x9003b5], 0
jne 0x6d9265
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x8f], 0
je 0x6d93a6
mov dword [esp], 0xa
call fcn.004fc370
mov eax, dword [0x9003b8]
test eax, eax
je 0x6d9370
mov dword [esp], 0
call fcn.004ec6f0
mov ebx, dword [0x9003c0]
test al, al
jne 0x6d9a20
mov eax, dword [ebp - 0x6b0]
mov esi, 7
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx + 0xc0]
mov dword [esp], eax
call fcn.0064e0d0
mov edx, dword [ebp - 0x71c]
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x6d0], eax
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x718]
mov edx, dword [ebp - 0x714]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov ecx, dword [ebp - 0x6b0]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x58]
mov dword [esp + 4], 0x82dca8
mov dword [esp], 5
mov dword [esp + 8], eax
call fcn.004fc8f0
cmp dword [ebp - 0x71c], ebx
jae 0x6d82d7
mov ecx, dword [ebp - 0x6d0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x718]
mov edx, dword [ebp - 0x714]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.007121f8
mov ecx, dword [ebp - 0x6b0]
mov ebx, dword [ecx + 8]
mov dword [ecx + 0x10], eax
test ebx, ebx
je 0x6d934f
cmp eax, dword [ecx + 0xc]
jl 0x6d9a5d
mov dword [esp], esi
call fcn.004ec6f0
test al, al
jne 0x6d82d7
nop
mov esi, 9
jmp 0x6d82d7
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x90], 0
je 0x6d9240
lea esi, [esi]
nop
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x90], 0
jne 0x6d927e
mov ebx, dword [0x9003c0]
jmp 0x6d90c0
mov esi, dword [0x9003b8]
test esi, esi
je 0x6d9388
jmp 0x6d927e
mov dword [esp], 0xc
call fcn.00712010
mov esi, dword [ebp - 0x69c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 0x2c], eax
jmp 0x6d7d0f
mov dword [esp], 0xc
call fcn.00712010
mov ebx, eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x69c]
mov dword [eax + 0x1c], ebx
jmp 0x6d7c38
fld dword [ebp - 0x6c0]
fstp qword [ebp - 0x6c0]
mov dword [esp], 0x82dea0
call fcn.007101e8
movsd xmm6, qword [ebp - 0x6c0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x418]
mov dword [esp], eax
movsd qword [esp + 8], xmm6
call fcn.00723cb0
jmp 0x6d8842
add dword [ebp - 0x670], 1
jmp 0x6d7910
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82dde8
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82dde8
mov edx, 0x82dae1
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82de14
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82de14
mov edx, 0x82daf2
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
mov eax, dword [ebp - 0x6b4]
sub esp, 0xc
test eax, eax
je 0x6d9650
mov eax, dword [ebp - 0x6b8]
test eax, eax
je 0x6d8da7
jmp 0x6d84e8
mov dword [ebp - 0x718], 0
xor eax, eax
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x6d8e10
mov eax, dword [ebp - 0x700]
mov dword [esp], ecx
lea ecx, [ebp - 0x698]
mov dword [esp + 4], eax
call fcn.00733390
sub esp, 8
jmp 0x6d77f0
mov dword [esp + 4], 0
mov eax, dword [esi]
mov dword [esp], eax
call fcn.005027d0
or edx, eax
je 0x6d95bc
cmp byte [0x901f50], 0
jne 0x6d9595
mov eax, dword [ebp - 0x6f8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6b0], eax
sub eax, edx
cmp eax, 0x48
jbe 0x6d9c51
mov dword [esp + 4], 0
mov eax, dword [edx + 0x48]
mov dword [esp], eax
call fcn.005027d0
or edx, eax
je 0x6d95bc
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.0069a170
mov edi, eax
test eax, eax
jne 0x6d97c8
cmp byte [ebp - 0x6f4], 0
je 0x6d97c8
mov eax, dword [ebp - 0x6f8]
mov edi, dword [eax + 4]
mov esi, dword [eax]
jmp 0x6d7f60
xor eax, eax
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x6d79f6
mov dword [esp], 0x82db8c
call fcn.007101e8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x6c8]
call fcn.004e6cd0
mov dword [ebp - 0x6a8], 0
sub esp, 0x10
mov ebx, edi
jmp 0x6d807f
mov eax, dword [ebp - 0x6d0]
mov dword [esp], eax
call fcn.00723bd0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call fcn.0054b8d0
jmp 0x6d83e3
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82de3c
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82de3c
mov edx, 0x82db01
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x82de60
mov dword [esp], 0
call fcn.007101f0
cmp eax, 0x82de60
mov edx, 0x82db0a
mov ecx, ebx
mov dword [esp + 8], 0
cmove eax, edx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004d3600
sub esp, 0xc
jmp 0x6d94f9
mov dword [ebp - 0x6e8], 0x200
mov eax, 1
mov dword [ebp - 0x6e4], 0
jmp 0x6d904d
xor esi, esi
jmp 0x6d92a6
mov dword [esi + 0x18], eax
mov esi, 0xb
mov ebx, dword [0x9003c0]
jmp 0x6d92a6
mov eax, dword [eax + 0x58]
mov dword [esp + 4], 0x82dce4
mov dword [esp], 1
mov dword [esp + 8], eax
call fcn.004fc8f0
mov eax, dword [ebp - 0x6b0]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x6d0], eax
sub eax, 1
cmp dword [edx + 0xa8], eax
jl 0x6d89f8
jmp 0x6d9360
mov eax, dword [eax + 0x58]
mov dword [esp + 4], 0x82dc5c
mov dword [esp], 5
mov dword [esp + 8], eax
call fcn.004fc8f0
mov eax, dword [ebp - 0x6b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0xc0]
mov eax, dword [edx + 0x23c]
test eax, eax
je 0x6d8fe5
mov eax, dword [0x9003b8]
test eax, eax
jne 0x6d8fe5
mov eax, dword [ebp - 0x69c]
cmp byte [eax + 0x90], 0
jne 0x6d8fe5
mov dword [esp + 4], 0x32
mov dword [esp], 0x14
call fcn.004fc390
jmp 0x6d9775
pxor xmm0, xmm0
add dword [ebp - 0x718], 1
lea eax, [ebp - 0x650]
movups xmmword [ebp - 0x640], xmm0
movups xmmword [ebp - 0x630], xmm0
mov dword [ebp - 0x700], eax
mov dword [ebp - 0x634], edi
movups xmmword [ebp - 0x650], xmm0
movups xmmword [ebp - 0x628], xmm0
mov dword [esp], ebx
call fcn.00723840
mov dword [ebp - 0x650], eax
mov eax, dword [ebp - 0x6f8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6b0], eax
sub eax, edx
cmp eax, 0x48
jbe 0x6d9c30
mov dword [esp + 4], 0
mov eax, dword [edx + 0x48]
mov dword [esp], eax
call fcn.005027d0
or eax, edx
mov eax, dword [ebp - 0x6a0]
setne byte [ebp - 0x64c]
mov dword [ebp - 0x61c], eax
mov eax, dword [ebp - 0x6f8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6b0], eax
sub eax, edx
cmp eax, 0x18
jbe 0x6d9c0f
mov dword [esp + 4], 0
mov eax, dword [edx + 0x18]
mov dword [esp], eax
call fcn.005027d0
mov dword [ebp - 0x648], eax
mov esi, eax
cmp eax, 1
je 0x6d9b20
cmp esi, 1
jle 0x6d98d4
sub esi, 1
mov dword [esp], esi
call fcn.00699cd0
fild dword [esi*4 + 0x901f20]
fdiv dword [0x82dfe0]
fsubr dword [0x82dfe4]
fxch st(1)
fmul dword [0x82dfe8]
fmulp st(1)
fstp qword [ebp - 0x6b0]
cvttsd2si eax, qword [ebp - 0x6b0]
mov dword [ebp - 0x644], eax
mov eax, dword [ebp - 0x6f8]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x710], eax
sub eax, esi
mov dword [ebp - 0x6b0], eax
cmp eax, 0x30
jbe 0x6d9bee
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x630], eax
test edi, edi
je 0x6d9a82
mov eax, dword [edi + 0xa8]
add dword [ebp - 0x678], 1
lea edx, [eax - 1]
cmp edx, 1
jbe 0x6d9a76
cmp eax, 3
je 0x6d9be2
jle 0x6d993a
add dword [ebp - 0x66c], 1
cmp byte [edi + 0x83], 8
lea eax, [ebp - 0x418]
sete byte [ebp - 0x64c]
mov esi, eax
mov dword [esp + 8], 1
mov dword [ebp - 0x6b0], eax
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0069e6a0
mov dword [esp], esi
call fcn.00723840
mov dword [ebp - 0x62c], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x6d9b9c
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x628], eax
mov eax, dword [edi + 0x50]
test eax, eax
je 0x6d9b63
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x624], eax
mov eax, dword [edi + 0x54]
test eax, eax
je 0x6d99bf
mov dword [esp], eax
call fcn.00723840
mov dword [ebp - 0x620], eax
mov ecx, dword [ebp - 0x694]
cmp ecx, dword [ebp - 0x690]
je 0x6d9b44
mov eax, dword [ebp - 0x620]
movdqu xmm7, xmmword [ebp - 0x650]
add ecx, 0x38
mov edx, dword [ebp - 0x61c]
movups xmmword [ecx - 0x38], xmm7
movdqu xmm7, xmmword [ebp - 0x640]
mov dword [ecx - 8], eax
mov eax, dword [ebp - 0x6f8]
movups xmmword [ecx - 0x28], xmm7
movdqu xmm7, xmmword [ebp - 0x630]
mov dword [ecx - 4], edx
movups xmmword [ecx - 0x18], xmm7
mov dword [ebp - 0x694], ecx
mov edi, dword [eax + 4]
mov esi, dword [eax]
jmp 0x6d7f60
mov eax, dword [ebp - 0x6b0]
xor esi, esi
mov ecx, dword [eax + 0x1c]
jmp 0x6d92a6
mov eax, dword [eax + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x82dc84
mov dword [esp + 0xc], eax
mov dword [esp], 5
call fcn.004fc8f0
mov eax, dword [ebp - 0x6b0]
mov dword [eax + 0x18], ebx
jmp 0x6d89f8
mov dword [esp + 4], 0x82dcd4
mov dword [esp], 5
call fcn.004fc8f0
jmp 0x6d89f8
add dword [ebp - 0x674], 1
jmp 0x6d993a
cmp dword [ebp - 0x6b0], 0xa8
jbe 0x6d99bf
mov edx, dword [ebp - 0x710]
mov ecx, 4
mov eax, esi
call fcn.006d3b00
mov edi, dword [ebp - 0x6f8]
mov esi, dword [edi]
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call fcn.00723840
mov edx, dword [edi + 4]
mov dword [ebp - 0x62c], eax
mov ecx, 5
mov eax, esi
call fcn.006d3b00
mov esi, dword [edi]
mov eax, dword [esi + 0x78]
mov dword [esp], eax
call fcn.00723840
mov edx, dword [edi + 4]
mov dword [ebp - 0x628], eax
mov ecx, 6
mov eax, esi
call fcn.006d3b00
mov esi, dword [edi]
mov eax, dword [esi + 0x90]
mov dword [esp], eax
call fcn.00723840
mov edx, dword [edi + 4]
mov dword [ebp - 0x624], eax
mov ecx, 7
mov eax, esi
call fcn.006d3b00
mov eax, dword [edi]
mov eax, dword [eax + 0xa8]
jmp 0x6d99b1
test edi, edi
je 0x6d9bd5
mov esi, dword [edi + 0xa8]
test esi, esi
je 0x6d9bd5
add esi, 1
mov dword [ebp - 0x648], esi
jmp 0x6d9893
mov eax, dword [ebp - 0x700]
mov dword [esp], ecx
lea ecx, [ebp - 0x698]
mov dword [esp + 4], eax
call fcn.00733390
push eax
push eax
jmp 0x6d95bc
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 4
mov eax, dword [ebp - 0x6b0]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x44]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502f00
jmp 0x6d999c
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 4
mov eax, dword [ebp - 0x6b0]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x40]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00502f00
jmp 0x6d9983
xor eax, eax
mov dword [ebp - 0x648], eax
jmp 0x6d98d4
add dword [ebp - 0x670], 1
jmp 0x6d993a
sar eax, 3
mov dword [esp + 4], 2
imul eax, eax, 0xaaaaaaab
mov dword [esp], 0x82c9b0
mov dword [esp + 8], eax
call fcn.00712068
sar eax, 3
mov dword [esp + 4], 1
imul eax, eax, 0xaaaaaaab
mov dword [esp], 0x82c9b0
mov dword [esp + 8], eax
call fcn.00712068
sar eax, 3
mov dword [esp + 4], 3
imul eax, eax, 0xaaaaaaab
mov dword [esp], 0x82c9b0
mov dword [esp + 8], eax
call fcn.00712068
sar eax, 3
mov dword [esp + 4], 3
imul eax, eax, 0xaaaaaaab
mov dword [esp], 0x82c9b0
mov dword [esp + 8], eax
call fcn.00712068
mov ebx, eax
jmp 0x75954c
mov eax, dword [ebp - 0x668]
lea esi, [ebp - 0x660]
cmp eax, esi
je 0x759564
mov dword [esp], eax
call fcn.00712028
mov eax, dword [ebp - 0x698]
test eax, eax
je 0x759576
mov dword [esp], eax
call fcn.00712028
mov dword [esp], ebx
call fcn.00712208
mov eax, dword [ebp - 0x668]
lea esi, [ebp - 0x660]
cmp eax, esi
je 0x759564
mov dword [esp], eax
call fcn.00712028
jmp 0x759564