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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x928
push esi
mov esi, dword [ebp + 0x18]
lea ecx, [ebp + 8]
push edi
xor edi, edi
lea edx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
mov dword [esp + 0x14], edi
cmovae ecx, dword [ebp + 8]
cmovae edx, dword [ebp + 8]
add esi, ecx
cmp dword [ebp + 0x1c], 0x10
cmovae eax, dword [ebp + 8]
cmp eax, esi
je 0x475a98
mov edi, eax
sub edx, edi
mov dword [esp + 0x20], edx
movsx eax, byte [edi]
push eax
call fcn.0043bec2
pop ecx
mov ecx, dword [esp + 0x20]
mov byte [ecx + edi], al
inc edi
cmp edi, esi
jne 0x475a7e
mov edi, dword [esp + 0x14]
cmp byte [0x4ffa78], 2
jne 0x4784d8
lea eax, [esp + 0x6b0]
mov esi, 0x4ffa78
push eax
mov ecx, esi
call fcn.0040b47c
lea eax, [esp + 0x860]
mov ecx, esi
push eax
call fcn.0040b43b
lea eax, [esp + 0x860]
push eax
lea ecx, [esp + 0x6b4]
call fcn.0040b295
test al, al
je 0x4784d8
mov esi, 0xee5bb0c1
mov dword [esp + 0x70], 0x18
mov edx, 0x3485ac91
mov dword [esp + 0x650], esi
mov ecx, 0xa5620fee
mov dword [esp + 0x654], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x658], ecx
mov dword [esp + 0x65c], eax
mov dword [esp + 0x6c0], esi
mov dword [esp + 0x6c4], edx
mov dword [esp + 0x6c8], ecx
mov dword [esp + 0x6cc], eax
mov dword [esp + 0x6d0], esi
mov dword [esp + 0x6d4], edx
mov dword [esp + 0x6d8], ecx
mov dword [esp + 0x6dc], eax
mov dword [esp + 0x6f0], esi
mov dword [esp + 0x6f4], edx
mov dword [esp + 0x6f8], ecx
mov dword [esp + 0x6fc], eax
mov dword [esp + 0x700], esi
mov dword [esp + 0x704], edx
mov dword [esp + 0x708], ecx
mov dword [esp + 0x70c], eax
lea ecx, [esp + 0x6b0]
call fcn.0040b30b
mov dword [esp + 0x380], 0x8004d4ad
mov esi, eax
mov dword [esp + 0x384], 0x34e0c1f0
lea eax, [esp + 0x380]
mov dword [esp + 0x388], 0xa5620fee
mov ecx, esi
mov dword [esp + 0x38c], 0xffb2cff4
movaps xmm0, xmmword [esp + 0x380]
pxor xmm0, xmmword [esp + 0x650]
push eax
movaps xmmword [esp + 0x384], xmm0
call fcn.0040efd9
lea ecx, [esp + 0x8b8]
push ecx
mov ecx, eax
call fcn.0040f086
mov dword [esp + 0x390], 0x8304d4ad
lea eax, [esp + 0x390]
mov dword [esp + 0x394], 0x47eedef0
mov ecx, esi
mov dword [esp + 0x398], 0xa5620fee
mov dword [esp + 0x39c], 0xffb2cff4
movaps xmm0, xmmword [esp + 0x390]
pxor xmm0, xmmword [esp + 0x6c0]
push eax
movaps xmmword [esp + 0x394], xmm0
call fcn.0040efd9
lea ecx, [esp + 0x8a0]
push ecx
mov ecx, eax
call fcn.0040f086
mov dword [esp + 0x3a0], 0x8904d4ad
lea eax, [esp + 0x3a0]
mov dword [esp + 0x3a4], 0x3485c3f4
mov ecx, esi
mov dword [esp + 0x3a8], 0xa5620fee
mov dword [esp + 0x3ac], 0xffb2cff4
movaps xmm0, xmmword [esp + 0x3a0]
pxor xmm0, xmmword [esp + 0x6d0]
push eax
movaps xmmword [esp + 0x3a4], xmm0
call fcn.0040efd9
lea ecx, [esp + 0x78]
push ecx
mov ecx, eax
call fcn.0040f086
mov dword [esp + 0x1a0], 0x9b04d4ad
lea eax, [esp + 0x1a0]
mov dword [esp + 0x1a4], 0x3485c0e3
mov ecx, esi
mov dword [esp + 0x1a8], 0xa5620fee
mov dword [esp + 0x1ac], 0xffb2cff4
movaps xmm0, xmmword [esp + 0x1a0]
pxor xmm0, xmmword [esp + 0x6f0]
push eax
movaps xmmword [esp + 0x1a4], xmm0
call fcn.0040efd9
lea ecx, [esp + 0x3d0]
push ecx
mov ecx, eax
call fcn.0040f086
mov edx, dword [esp + 0x8c]
lea esi, [esp + 0x78]
cmp edx, 0x10
lea ecx, [esp + 0x78]
lea eax, [esp + 0x78]
cmovae ecx, dword [esp + 0x78]
cmovae esi, dword [esp + 0x78]
add esi, dword [esp + 0x88]
cmp edx, 0x10
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x78]
cmovae eax, ecx
cmp eax, esi
je 0x475d87
mov edi, eax
sub dword [esp + 0x2c], edi
movsx eax, byte [edi]
push eax
call fcn.0043bec2
pop ecx
mov ecx, dword [esp + 0x2c]
mov byte [ecx + edi], al
inc edi
cmp edi, esi
jne 0x475d62
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x78]
mov esi, 0xffb2cff4
cmp edx, 0x10
mov dword [esp + 0x1b0], 0xee5bb0e1
lea eax, [esp + 0x78]
mov dword [esp + 0x1b4], 0x3485ac91
cmovae eax, ecx
mov dword [esp + 0x1b8], 0xa5620fee
mov dword [esp + 0x1bc], esi
lea ecx, [esp + 0x1b0]
movaps xmm0, xmmword [esp + 0x1b0]
pxor xmm0, xmmword [esp + 0x700]
push ecx
push eax
movaps xmmword [esp + 0x1b8], xmm0
call fcn.00437980
pop ecx
pop ecx
test eax, eax
je 0x475f72
xor eax, eax
mov dword [esp + 0xa4], 0xf
push eax
push 0x4ea994
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], eax
mov dword [esp + 0xa8], eax
call fcn.00407850
mov ecx, 0x3485ac91
mov dword [esp + 0xf0], 0xee5bb0e1
mov eax, 0xa5620fee
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], esi
movaps xmm1, xmmword [esp + 0xf0]
and dword [esp + 0x34], 0
and dword [esp + 0x44], 0
mov dword [esp + 0x714], ecx
lea ecx, [esp + 0xf0]
mov dword [esp + 0x710], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x718], eax
mov dword [esp + 0x71c], esi
pxor xmm1, xmmword [esp + 0x710]
movaps xmmword [esp + 0xf0], xmm1
mov dword [esp + 0x48], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x475e9b
sub ecx, edx
lea eax, [esp + 0xf0]
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00407850
lea eax, [esp + 0x90]
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x7c]
call fcn.0049b8ca
mov eax, dword [esp + 0x4c]
pop ecx
cmp eax, 0x10
jb 0x475f0b
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
cmp eax, 0x1000
jb 0x475f02
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x34]
pop ecx
pop ecx
mov ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
and dword [esp + 0x44], 0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x48], 0xf
mov byte [esp + 0x34], 0
cmp eax, 0x10
jb 0x475f62
mov ecx, dword [esp + 0x90]
inc eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
cmp eax, 0x1000
jb 0x475f59
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x2c]
pop ecx
pop ecx
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x78]
jmp 0x475d8c
mov ecx, 0x3485ac91
mov dword [esp + 0x1c0], 0xee5bb0ed
mov eax, 0xa5620fee
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], eax
sub esp, 0x18
mov dword [esp + 0x1e4], esi
movaps xmm1, xmmword [esp + 0x1d8]
mov dword [esp + 0x41c], ecx
mov ecx, esp
mov dword [esp + 0x420], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 0x418], 0xee5bb0c1
mov dword [esp + 0x424], esi
pxor xmm1, xmmword [esp + 0x418]
push eax
mov byte [esp + 0x37], 0
movaps xmmword [esp + 0x1dc], xmm1
call fcn.00407785
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0xa8]
push eax
call fcn.0040dfa6
lea ecx, [esp + 0x418]
call fcn.0049b907
mov eax, dword [esp + 0x41c]
add esp, 0x30
mov esi, dword [esp + 0x3e8]
sub eax, esi
mov dword [esp + 0x28], eax
cdq
push 0x18
pop ecx
idiv ecx
and dword [esp + 0x24], 0
mov dword [esp + 0x20], eax
test eax, eax
je 0x476064
lea edx, [ebp + 8]
mov ecx, esi
call fcn.0040efa8
test al, al
jne 0x4765b3
mov eax, dword [esp + 0x24]
push 0x18
inc eax
pop ecx
add esi, ecx
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x20]
jb 0x47603e
mov al, byte [esp + 0x1b]
cmp dword [esp + 0x28], 0
je 0x476077
test al, al
je 0x478477
mov edx, 0x3485ac91
mov dword [esp + 0x1d0], 0xee5bb0ed
mov ecx, 0xa5620fee
mov dword [esp + 0x1d4], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1dc], eax
sub esp, 0x18
movaps xmm1, xmmword [esp + 0x1e8]
mov dword [esp + 0x430], ecx
mov ecx, esp
mov dword [esp + 0x434], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x42c], edx
mov dword [esp + 0x428], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x428]
push eax
mov byte [esp + 0x38], 0
movaps xmmword [esp + 0x1ec], xmm1
call fcn.00407785
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x8d0]
push eax
call fcn.0040dfa6
lea ecx, [esp + 0x104]
call fcn.0049b907
mov ecx, dword [esp + 0x108]
add esp, 0x30
mov esi, dword [esp + 0xd4]
mov eax, ecx
sub eax, esi
and dword [esp + 0x2c], 0
cdq
idiv dword [esp + 0x70]
test eax, eax
je 0x477612
mov edx, dword [esp + 0x2c]
imul eax, edx, 0x18
sub esp, 0x18
mov ecx, esp
xor edx, edx
add eax, esi
mov dword [ecx], edx
push eax
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], edx
call fcn.0040dfa6
sub esp, 0x10
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.0040b62d
lea ecx, [esp + 0x128]
call fcn.00494a3a
add esp, 0x28
mov byte [esp + 0x3c0], 5
xorps xmm0, xmm0
lea edx, [esp + 0x3c0]
lea ecx, [esp + 0x100]
movlpd qword [esp + 0x3c8], xmm0
call fcn.00412821
push 5
lea ecx, [esp + 0x3cc]
mov byte [esp + 0x1f], al
call fcn.0040d446
cmp byte [esp + 0x1b], 0
jne 0x4775d8
mov dword [esp + 0x50], 0x8529d1ac
mov esi, 0xffb2cff4
mov dword [esp + 0x54], 0x51edcfce
mov eax, 0x57b79f83
mov dword [esp + 0x58], 0xc63d648d
mov ecx, 0xb86fa0
mov dword [esp + 0x5c], 0x96d9a09b
mov edx, 0xcfc4fa1e
movaps xmm1, xmmword [esp + 0x50]
mov dword [esp + 0x720], 0xee5bb0c1
mov dword [esp + 0x724], 0x3485ac91
mov dword [esp + 0x728], 0xa5620fee
mov dword [esp + 0x72c], esi
pxor xmm1, xmmword [esp + 0x720]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], 0x7096f66
mov dword [esp + 0x6c], edx
movaps xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x60]
mov dword [esp + 0x734], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x738], ecx
lea ecx, [esp + 0x100]
mov dword [esp + 0x73c], edx
mov dword [esp + 0x730], 0x7091c03
pxor xmm1, xmmword [esp + 0x730]
push eax
movaps xmmword [esp + 0x64], xmm1
call fcn.0040efd9
cmp byte [eax], 4
jne 0x478533
mov al, byte [eax + 8]
mov ecx, 0xb86fa0
mov dword [esp + 0x50], 0x8529d1ac
mov edx, 0xcfc4fa1e
mov dword [esp + 0x54], 0x51edcfce
mov dword [esp + 0x58], 0xd53d648d
mov dword [esp + 0x5c], 0x88c1bc95
movaps xmm1, xmmword [esp + 0x50]
mov byte [esp + 0x1b], al
mov eax, 0x57b79f83
mov dword [esp + 0x740], 0xee5bb0c1
mov dword [esp + 0x744], 0x3485ac91
mov dword [esp + 0x748], 0xa5620fee
mov dword [esp + 0x74c], esi
pxor xmm1, xmmword [esp + 0x740]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], 0x746d6e6c
mov dword [esp + 0x6c], edx
movaps xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x60]
mov dword [esp + 0x754], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x758], ecx
lea ecx, [esp + 0x100]
mov dword [esp + 0x75c], edx
mov dword [esp + 0x750], 0x7091c03
pxor xmm1, xmmword [esp + 0x750]
push eax
movaps xmmword [esp + 0x64], xmm1
call fcn.0040efd9
cmp byte [eax], 4
jne 0x478533
mov al, byte [eax + 8]
mov ecx, 0xb86fa0
mov dword [esp + 0x50], 0x8529d1ac
mov edx, 0xcfc4fa1e
mov dword [esp + 0x54], 0x51edcfce
mov dword [esp + 0x58], 0xcd3d648d
mov dword [esp + 0x5c], 0x90c6bc9d
movaps xmm1, xmmword [esp + 0x50]
mov byte [esp + 0x4e], al
mov eax, 0x57b79f83
mov dword [esp + 0x760], 0xee5bb0c1
mov dword [esp + 0x764], 0x3485ac91
mov dword [esp + 0x768], 0xa5620fee
mov dword [esp + 0x76c], esi
pxor xmm1, xmmword [esp + 0x760]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], 0x7096571
mov dword [esp + 0x6c], edx
movaps xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x60]
mov dword [esp + 0x774], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x778], ecx
lea ecx, [esp + 0x100]
mov dword [esp + 0x77c], edx
mov dword [esp + 0x770], 0x7091c03
pxor xmm1, xmmword [esp + 0x770]
push eax
movaps xmmword [esp + 0x64], xmm1
call fcn.0040efd9
cmp byte [eax], 4
jne 0x478533
mov al, byte [eax + 8]
lea ecx, [esp + 0x100]
mov dword [esp + 0x1e0], 0x8529d1ac
mov dword [esp + 0x1e4], 0x59eac8ce
mov dword [esp + 0x1e8], 0xd60c668f
mov dword [esp + 0x1ec], esi
movaps xmm1, xmmword [esp + 0x1e0]
mov byte [esp + 0x4f], al
lea eax, [esp + 0x1e0]
mov dword [esp + 0x420], 0xee5bb0c1
mov dword [esp + 0x424], 0x3485ac91
mov dword [esp + 0x428], 0xa5620fee
mov dword [esp + 0x42c], esi
pxor xmm1, xmmword [esp + 0x420]
push eax
movaps xmmword [esp + 0x1e4], xmm1
call fcn.0040efd9
lea ecx, [esp + 0x188]
push ecx
mov ecx, eax
call fcn.0040f086
mov ecx, 0x3485ac91
mov dword [esp + 0x1f0], 0xee5bb0ed
mov eax, 0xa5620fee
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
sub esp, 0x18
mov dword [esp + 0x214], esi
movaps xmm1, xmmword [esp + 0x208]
mov dword [esp + 0x44c], ecx
mov ecx, esp
mov dword [esp + 0x450], eax
lea eax, [esp + 0x208]
mov dword [esp + 0x448], 0xee5bb0c1
mov dword [esp + 0x454], esi
pxor xmm1, xmmword [esp + 0x448]
push eax
movaps xmmword [esp + 0x20c], xmm1
call fcn.00407785
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x1b8]
push eax
call fcn.0040dfa6
lea ecx, [esp + 0xd8]
call fcn.0049b907
add esp, 0x30
cmp byte [esp + 0x1b], 0
je 0x476d24
lea ecx, [ebp + 0x30]
call fcn.0040b40f
test eax, eax
je 0x47694b
lea ecx, [esp + 0xe0]
call fcn.00411cbf
lea edx, [esp + 0xe0]
lea ecx, [ebp + 0x30]
call fcn.0041822b
mov eax, dword [esp + 0xe0]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x476935
xor eax, eax
inc eax
jmp 0x476068
cmp byte [esp + 0x1c], 0
jne 0x47693f
lea esi, [eax + 0x28]
cmp byte [esi], 0
je 0x476928
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x476928
lea eax, [esp + 0x480]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x7f0]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x47690c
lea ecx, [esp + 0x480]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x476928
lea ecx, [esp + 0xcc]
call fcn.00411cbf
lea edx, [esp + 0xcc]
mov ecx, esi
call fcn.0041822b
mov eax, dword [esp + 0xcc]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jmp 0x4768ea
cmp byte [esp + 0x1c], 0
jne 0x4768f4
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x4768dd
lea eax, [esp + 0x470]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x7e0]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x4768c1
lea ecx, [esp + 0x470]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x4768dd
xor eax, eax
mov dword [esp + 0x48], 0xf
push eax
push 0x4ea995
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
call fcn.00407850
mov ecx, 0xa5620fee
mov dword [esp + 0x200], 0x8f36dfa5
mov eax, 0xffb2cff4
mov dword [esp + 0x208], ecx
mov dword [esp + 0x20c], eax
mov dword [esp + 0x204], 0x3485c2f8
movaps xmm1, xmmword [esp + 0x200]
mov dword [esp + 0x448], ecx
mov ecx, esi
mov dword [esp + 0x44c], eax
lea eax, [esp + 0x200]
mov dword [esp + 0x440], 0xee5bb0c1
mov dword [esp + 0x444], 0x3485ac91
pxor xmm1, xmmword [esp + 0x440]
push eax
movaps xmmword [esp + 0x204], xmm1
call fcn.0040efd9
cmp byte [eax], 0
je 0x4767ca
mov ecx, 0xa5620fee
mov dword [esp + 0x210], 0x8f36dfa5
mov eax, 0xffb2cff4
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], eax
mov dword [esp + 0x214], 0x3485c2f8
movaps xmm1, xmmword [esp + 0x210]
mov dword [esp + 0x458], ecx
mov ecx, esi
mov dword [esp + 0x45c], eax
lea eax, [esp + 0x210]
mov dword [esp + 0x450], 0xee5bb0c1
mov dword [esp + 0x454], 0x3485ac91
pxor xmm1, xmmword [esp + 0x450]
push eax
movaps xmmword [esp + 0x214], xmm1
call fcn.0040efd9
push eax
lea ecx, [esp + 0x38]
call fcn.00413c90
mov edx, 0x3485ac91
mov dword [esp + 0x220], 0xee5bb0ef
mov ecx, 0xa5620fee
mov dword [esp + 0x224], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], eax
sub esp, 0x18
movaps xmm1, xmmword [esp + 0x238]
mov dword [esp + 0x47c], edx
lea edx, [esp + 0x238]
mov dword [esp + 0x480], ecx
mov ecx, esp
mov dword [esp + 0x484], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x478], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x478]
push eax
movaps xmmword [esp + 0x23c], xmm1
call fcn.0040ef10
push ecx
push ecx
lea eax, [esp + 0xcc]
mov ecx, esp
push eax
call fcn.0040c2ae
xor cl, cl
call fcn.004948f6
mov ecx, dword [esp + 0x40]
add esp, 0x24
test al, al
movzx ecx, cl
push 1
pop eax
cmovne ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
cmp eax, 0x10
jb 0x4768b5
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ecx
cmp eax, 0x1000
jb 0x4768ac
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x2c]
pop ecx
pop ecx
mov ecx, dword [esp + 0x30]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
lea ecx, [esp + 0x470]
call fcn.0040b2d1
lea eax, [esp + 0x7e0]
push eax
lea ecx, [esp + 0x474]
call fcn.0040b295
test al, al
jne 0x476689
lea ecx, [esp + 0x28]
call fcn.0040d3d9
mov eax, dword [esp + 0x28]
cmp byte [eax + 0xd], 0
je 0x476649
lea ecx, [esp + 0xcc]
call fcn.0040b354
lea ecx, [esp + 0x480]
call fcn.0040b2d1
lea eax, [esp + 0x7f0]
push eax
lea ecx, [esp + 0x484]
call fcn.0040b295
test al, al
jne 0x476604
lea ecx, [esp + 0x20]
call fcn.0040d3d9
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xd], 0
je 0x4765bb
lea ecx, [esp + 0xe0]
call fcn.0040b354
mov eax, dword [esp + 0x1c]
test al, al
jne 0x476d28
lea ecx, [ebp + 0x40]
call fcn.0040b40f
test eax, eax
je 0x476d24
lea ecx, [esp + 0x178]
call fcn.00411cbf
lea edx, [esp + 0x178]
lea ecx, [ebp + 0x40]
call fcn.0041822b
mov eax, dword [esp + 0x178]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
jmp 0x476d0e
cmp byte [esp + 0x1c], 0
jne 0x476d18
lea esi, [eax + 0x28]
cmp byte [esi], 0
je 0x476d01
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x476d01
lea eax, [esp + 0x4d0]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x810]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x476ce5
lea ecx, [esp + 0x4d0]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x476d01
lea ecx, [esp + 0xe8]
call fcn.00411cbf
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.0041822b
mov eax, dword [esp + 0xe8]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x476cc3
cmp byte [esp + 0x1c], 0
jne 0x476ccd
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x476cb6
lea eax, [esp + 0x4c0]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x800]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x476c9a
lea ecx, [esp + 0x4c0]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x476cb6
xor eax, eax
mov dword [esp + 0x48], 0xf
push eax
push 0x4ea996
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
call fcn.00407850
mov ecx, 0xa5620fee
mov dword [esp + 0x230], 0x8f36dfa5
mov eax, 0xffb2cff4
mov dword [esp + 0x238], ecx
mov dword [esp + 0x23c], eax
mov dword [esp + 0x234], 0x3485c2f8
movaps xmm1, xmmword [esp + 0x230]
mov dword [esp + 0x498], ecx
mov ecx, esi
mov dword [esp + 0x49c], eax
lea eax, [esp + 0x230]
mov dword [esp + 0x490], 0xee5bb0c1
mov dword [esp + 0x494], 0x3485ac91
pxor xmm1, xmmword [esp + 0x490]
push eax
movaps xmmword [esp + 0x234], xmm1
call fcn.0040efd9
cmp byte [eax], 0
je 0x476ba3
mov ecx, 0xa5620fee
mov dword [esp + 0x240], 0x8f36dfa5
mov eax, 0xffb2cff4
mov dword [esp + 0x248], ecx
mov dword [esp + 0x24c], eax
mov dword [esp + 0x244], 0x3485c2f8
movaps xmm1, xmmword [esp + 0x240]
mov dword [esp + 0x4a8], ecx
mov ecx, esi
mov dword [esp + 0x4ac], eax
lea eax, [esp + 0x240]
mov dword [esp + 0x4a0], 0xee5bb0c1
mov dword [esp + 0x4a4], 0x3485ac91
pxor xmm1, xmmword [esp + 0x4a0]
push eax
movaps xmmword [esp + 0x244], xmm1
call fcn.0040efd9
push eax
lea ecx, [esp + 0x38]
call fcn.00413c90
mov edx, 0x3485ac91
mov dword [esp + 0x250], 0xee5bb0ef
mov ecx, 0xa5620fee
mov dword [esp + 0x254], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x258], ecx
mov dword [esp + 0x25c], eax
sub esp, 0x18
movaps xmm1, xmmword [esp + 0x268]
mov dword [esp + 0x4cc], edx
lea edx, [esp + 0x268]
mov dword [esp + 0x4d0], ecx
mov ecx, esp
mov dword [esp + 0x4d4], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c8], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x4c8]
push eax
movaps xmmword [esp + 0x26c], xmm1
call fcn.0040ef10
push ecx
push ecx
lea eax, [esp + 0xcc]
mov ecx, esp
push eax
call fcn.0040c2ae
xor cl, cl
call fcn.004948f6
mov ecx, dword [esp + 0x40]
add esp, 0x24
test al, al
movzx ecx, cl
push 1
pop eax
cmovne ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x1c], cl
cmp eax, 0x10
jb 0x476c8e
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp eax, 0x1000
jb 0x476c85
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x28]
pop ecx
pop ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
lea ecx, [esp + 0x4c0]
call fcn.0040b2d1
lea eax, [esp + 0x800]
push eax
lea ecx, [esp + 0x4c4]
call fcn.0040b295
test al, al
jne 0x476a62
lea ecx, [esp + 0x30]
call fcn.0040d3d9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xd], 0
je 0x476a22
lea ecx, [esp + 0xe8]
call fcn.0040b354
lea ecx, [esp + 0x4d0]
call fcn.0040b2d1
lea eax, [esp + 0x810]
push eax
lea ecx, [esp + 0x4d4]
call fcn.0040b295
test al, al
jne 0x4769dd
lea ecx, [esp + 0x24]
call fcn.0040d3d9
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xd], 0
je 0x476994
lea ecx, [esp + 0x178]
call fcn.0040b354
mov eax, dword [esp + 0x1c]
cmp byte [esp + 0x4e], 0
je 0x477243
test al, al
jne 0x477243
lea ecx, [ebp + 0x50]
call fcn.0040b40f
test eax, eax
je 0x476fc5
lea ecx, [esp + 0x180]
call fcn.00411cbf
lea edx, [esp + 0x180]
lea ecx, [ebp + 0x50]
call fcn.0041822b
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x476fa3
cmp byte [esp + 0x1c], 0
jne 0x476fad
lea esi, [eax + 0x28]
lea eax, [esp + 0x500]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x820]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x476f7a
lea ecx, [esp + 0x500]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x476f96
xor eax, eax
mov dword [esp + 0x48], 0xf
push eax
push 0x4ea997
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
call fcn.00407850
mov edx, 0x3485ac91
mov dword [esp + 0x260], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x264], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x268], ecx
mov dword [esp + 0x26c], eax
movaps xmm1, xmmword [esp + 0x260]
mov dword [esp + 0x4e8], ecx
mov ecx, esi
mov dword [esp + 0x4ec], eax
lea eax, [esp + 0x260]
mov dword [esp + 0x4e4], edx
mov dword [esp + 0x4e0], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x4e0]
push eax
movaps xmmword [esp + 0x264], xmm1
call fcn.0040efd9
cmp byte [eax], 0
je 0x476ee4
mov edx, 0x3485ac91
mov dword [esp + 0x270], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x274], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x278], ecx
mov dword [esp + 0x27c], eax
movaps xmm1, xmmword [esp + 0x270]
mov dword [esp + 0x4f8], ecx
mov ecx, esi
mov dword [esp + 0x4fc], eax
lea eax, [esp + 0x270]
mov dword [esp + 0x4f4], edx
mov dword [esp + 0x4f0], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x4f0]
push eax
movaps xmmword [esp + 0x274], xmm1
call fcn.0040efd9
push eax
lea ecx, [esp + 0x38]
call fcn.00413c90
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x4c]
push eax
call fcn.0040dfa6
sub esp, 0xc
lea eax, [esp + 0xcc]
mov ecx, esp
push eax
call fcn.0040c2ae
xor eax, eax
lea ecx, [eax + 1]
call fcn.004948f6
mov ecx, dword [esp + 0x40]
add esp, 0x24
test al, al
movzx ecx, cl
push 1
pop eax
cmovne ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x1c], cl
cmp eax, 0x10
jb 0x476f6e
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp eax, 0x1000
jb 0x476f65
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x28]
pop ecx
pop ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
lea ecx, [esp + 0x500]
call fcn.0040b2d1
lea eax, [esp + 0x820]
push eax
lea ecx, [esp + 0x504]
call fcn.0040b295
test al, al
jne 0x476da9
lea ecx, [esp + 0x30]
call fcn.0040d3d9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xd], 0
je 0x476d78
lea ecx, [esp + 0x180]
call fcn.0040b354
mov eax, dword [esp + 0x1c]
test al, al
jne 0x477247
lea ecx, [ebp + 0x60]
call fcn.0040b40f
test eax, eax
je 0x477243
lea ecx, [esp + 0xb4]
call fcn.00411cbf
lea edx, [esp + 0xb4]
lea ecx, [ebp + 0x60]
call fcn.0041822b
mov eax, dword [esp + 0xb4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x47722d
cmp byte [esp + 0x1c], 0
jne 0x477237
lea esi, [eax + 0x28]
lea eax, [esp + 0x530]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x830]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x477204
lea ecx, [esp + 0x530]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x477220
xor eax, eax
mov dword [esp + 0x48], 0xf
push eax
push 0x4ea998
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
call fcn.00407850
mov edx, 0x3485ac91
mov dword [esp + 0x280], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x284], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
movaps xmm1, xmmword [esp + 0x280]
mov dword [esp + 0x518], ecx
mov ecx, esi
mov dword [esp + 0x51c], eax
lea eax, [esp + 0x280]
mov dword [esp + 0x514], edx
mov dword [esp + 0x510], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x510]
push eax
movaps xmmword [esp + 0x284], xmm1
call fcn.0040efd9
cmp byte [eax], 0
je 0x47716e
mov edx, 0x3485ac91
mov dword [esp + 0x290], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x294], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x298], ecx
mov dword [esp + 0x29c], eax
movaps xmm1, xmmword [esp + 0x290]
mov dword [esp + 0x528], ecx
mov ecx, esi
mov dword [esp + 0x52c], eax
lea eax, [esp + 0x290]
mov dword [esp + 0x524], edx
mov dword [esp + 0x520], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x520]
push eax
movaps xmmword [esp + 0x294], xmm1
call fcn.0040efd9
push eax
lea ecx, [esp + 0x38]
call fcn.00413c90
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x4c]
push eax
call fcn.0040dfa6
sub esp, 0xc
lea eax, [esp + 0xcc]
mov ecx, esp
push eax
call fcn.0040c2ae
xor eax, eax
lea ecx, [eax + 1]
call fcn.004948f6
mov ecx, dword [esp + 0x40]
add esp, 0x24
test al, al
movzx ecx, cl
push 1
pop eax
cmovne ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x1c], cl
cmp eax, 0x10
jb 0x4771f8
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp eax, 0x1000
jb 0x4771ef
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x28]
pop ecx
pop ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
lea ecx, [esp + 0x530]
call fcn.0040b2d1
lea eax, [esp + 0x830]
push eax
lea ecx, [esp + 0x534]
call fcn.0040b295
test al, al
jne 0x477033
lea ecx, [esp + 0x30]
call fcn.0040d3d9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xd], 0
je 0x477002
lea ecx, [esp + 0xb4]
call fcn.0040b354
mov eax, dword [esp + 0x1c]
cmp byte [esp + 0x4f], 0
je 0x4775c0
test al, al
jne 0x4775c0
lea ecx, [ebp + 0x70]
call fcn.0040b40f
test eax, eax
je 0x4775c0
lea ecx, [esp + 0xc4]
call fcn.00411cbf
lea edx, [esp + 0xc4]
lea ecx, [ebp + 0x70]
call fcn.0041822b
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
jmp 0x4775aa
cmp byte [esp + 0x1c], 0
jne 0x4775b4
lea esi, [eax + 0x28]
cmp byte [esi], 0
je 0x47759d
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x47759d
lea eax, [esp + 0x570]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x850]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x477581
lea ecx, [esp + 0x570]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x47759d
lea ecx, [esp + 0xbc]
call fcn.00411cbf
lea edx, [esp + 0xbc]
mov ecx, esi
call fcn.0041822b
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x47755f
cmp byte [esp + 0x1c], 0
jne 0x477569
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.0040b40f
test eax, eax
je 0x477552
lea eax, [esp + 0x560]
mov ecx, esi
push eax
call fcn.0040b47c
lea eax, [esp + 0x840]
mov ecx, esi
push eax
call fcn.0040b43b
jmp 0x477536
lea ecx, [esp + 0x560]
call fcn.0040b30b
cmp byte [esp + 0x1c], 0
mov esi, eax
jne 0x477552
xor eax, eax
mov dword [esp + 0x48], 0xf
push eax
push 0x4ea999
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
call fcn.00407850
mov edx, 0x3485ac91
mov dword [esp + 0x2a0], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x2a4], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x2ac], eax
movaps xmm1, xmmword [esp + 0x2a0]
mov dword [esp + 0x548], ecx
mov ecx, esi
mov dword [esp + 0x54c], eax
lea eax, [esp + 0x2a0]
mov dword [esp + 0x544], edx
mov dword [esp + 0x540], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x540]
push eax
movaps xmmword [esp + 0x2a4], xmm1
call fcn.0040efd9
cmp byte [eax], 0
je 0x4774a0
mov edx, 0x3485ac91
mov dword [esp + 0x2b0], 0xee37c2b4
mov ecx, 0xa5620fee
mov dword [esp + 0x2b4], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x2bc], eax
movaps xmm1, xmmword [esp + 0x2b0]
mov dword [esp + 0x558], ecx
mov ecx, esi
mov dword [esp + 0x55c], eax
lea eax, [esp + 0x2b0]
mov dword [esp + 0x554], edx
mov dword [esp + 0x550], 0xee5bb0c1
pxor xmm1, xmmword [esp + 0x550]
push eax
movaps xmmword [esp + 0x2b4], xmm1
call fcn.0040efd9
push eax
lea ecx, [esp + 0x38]
call fcn.00413c90
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x4c]
push eax
call fcn.0040dfa6
sub esp, 0xc
lea eax, [esp + 0xcc]
mov ecx, esp
push eax
call fcn.0040c2ae
xor eax, eax
lea ecx, [eax + 1]
call fcn.004948f6
mov ecx, dword [esp + 0x40]
add esp, 0x24
test al, al
movzx ecx, cl
push 1
pop eax
cmovne ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x1c], cl
cmp eax, 0x10
jb 0x47752a
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp eax, 0x1000
jb 0x477521
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004076c3
mov eax, dword [esp + 0x28]
pop ecx
pop ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0041e009
pop ecx
pop ecx
lea ecx, [esp + 0x560]
call fcn.0040b2d1
lea eax, [esp + 0x840]
push eax
lea ecx, [esp + 0x564]
call fcn.0040b295
test al, al
jne 0x477365
lea ecx, [esp + 0x30]
call fcn.0040d3d9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xd], 0
je 0x477325
lea ecx, [esp + 0xbc]
call fcn.0040b354
lea ecx, [esp + 0x570]
call fcn.0040b2d1
lea eax, [esp + 0x850]
push eax
lea ecx, [esp + 0x574]
call fcn.0040b295
test al, al
jne 0x4772e0
lea ecx, [esp + 0x24]
call fcn.0040d3d9
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xd], 0
je 0x477297
lea ecx, [esp + 0xc4]
call fcn.0040b354
lea ecx, [esp + 0xa8]
call fcn.0040da76
lea ecx, [esp + 0x188]
call fcn.004077ce
push dword [esp + 0x100]
lea ecx, [esp + 0x10c]
call fcn.0040d446
mov ecx, dword [esp + 0xd8]
mov eax, ecx
mov esi, dword [esp + 0xd4]
sub eax, esi
cdq
idiv dword [esp + 0x70]
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
cmp edx, eax
jb 0x476149
mov eax, dword [esp + 0x1c]
sub ecx, esi
push 1
movzx eax, al
pop ecx
cmove eax, ecx
test al, al
je 0x47846b
mov ecx, 0x3485ac91
mov dword [esp + 0x110], 0x8b23d5ef
mov eax, 0xa5620fee
mov dword [esp + 0x114], ecx
mov esi, 0xffb2cff4
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], esi
movaps xmm1, xmmword [esp + 0x110]
and dword [esp + 0x34], 0
and dword [esp + 0x44], 0
mov dword [esp + 0x584], ecx
lea ecx, [esp + 0x110]
mov dword [esp + 0x580], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x588], eax
mov dword [esp + 0x58c], esi
pxor xmm1, xmmword [esp + 0x580]
movaps xmmword [esp + 0x110], xmm1
mov dword [esp + 0x48], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4776ad
sub ecx, edx
lea eax, [esp + 0x110]
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00407850
mov ecx, 0x3485ac91
mov dword [esp + 0x2c0], 0xee5bb0ef
mov eax, 0xa5620fee
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x2c8], eax
sub esp, 0x18
mov dword [esp + 0x2e4], esi
movaps xmm1, xmmword [esp + 0x2d8]
mov dword [esp + 0x5ac], ecx
mov ecx, esp
mov dword [esp + 0x5b0], eax
lea eax, [esp + 0x2d8]
mov dword [esp + 0x5a8], 0xee5bb0c1
mov dword [esp + 0x5b4], esi
pxor xmm1, xmmword [esp + 0x5a8]
push eax
movaps xmmword [esp + 0x2dc], xmm1
call fcn.00407785
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x400]
push eax
call fcn.0040dfa6
lea ecx, [esp + 0x424]
call fcn.0049b907
mov eax, dword [esp + 0x428]
add esp, 0x30
mov ecx, dword [esp + 0x3f4]
sub eax, ecx
cdq
idiv dword [esp + 0x70]
test eax, eax
je 0x47815d
imul eax, eax, 0x18
add ecx, 0xffffffe8
add eax, ecx
lea ecx, [esp + 0x34]
push eax
call fcn.0040c928
xor eax, eax
mov dword [esp + 0x120], 0xee3ec8a4
inc eax
mov dword [esp + 0x12c], esi
or edi, eax
mov dword [esp + 0x5a0], 0xee5bb0c1
mov ecx, 0x3485ac91
mov dword [esp + 0x5ac], esi
mov eax, 0xa5620fee
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
movaps xmm1, xmmword [esp + 0x120]
and dword [esp + 0x188], 0
and dword [esp + 0x198], 0
mov dword [esp + 0x5a4], ecx
lea ecx, [esp + 0x120]
mov dword [esp + 0x5a8], eax
lea edx, [ecx + 1]
pxor xmm1, xmmword [esp + 0x5a0]
mov dword [esp + 0x14], edi
movaps xmmword [esp + 0x120], xmm1
mov dword [esp + 0x19c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477828
sub ecx, edx
lea eax, [esp + 0x120]
push ecx
push eax
lea ecx, [esp + 0x190]
call fcn.00407850
lea edx, [esp + 0x188]
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x130], 0xee32c3ac
mov eax, 0xa5620fee
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], eax
or edi, 2
mov dword [esp + 0x13c], esi
movaps xmm1, xmmword [esp + 0x130]
and dword [esp + 0x7c8], 0
and dword [esp + 0x7d8], 0
mov dword [esp + 0x5b4], ecx
lea ecx, [esp + 0x130]
mov dword [esp + 0x5b0], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x5b8], eax
mov dword [esp + 0x5bc], esi
pxor xmm1, xmmword [esp + 0x5b0]
mov dword [esp + 0x14], edi
movaps xmmword [esp + 0x130], xmm1
mov dword [esp + 0x7dc], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4778ed
sub ecx, edx
lea eax, [esp + 0x130]
push ecx
push eax
lea ecx, [esp + 0x7d0]
call fcn.00407850
lea edx, [esp + 0x7c8]
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x140], 0xee29d3b2
mov eax, 0xa5620fee
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
or edi, 4
mov dword [esp + 0x14c], esi
movaps xmm1, xmmword [esp + 0x140]
and dword [esp + 0x7b0], 0
and dword [esp + 0x7c0], 0
mov dword [esp + 0x5c4], ecx
lea ecx, [esp + 0x140]
mov dword [esp + 0x5c0], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x5c8], eax
mov dword [esp + 0x5cc], esi
pxor xmm1, xmmword [esp + 0x5c0]
mov dword [esp + 0x14], edi
movaps xmmword [esp + 0x140], xmm1
mov dword [esp + 0x7c4], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4779b2
sub ecx, edx
lea eax, [esp + 0x140]
push ecx
push eax
lea ecx, [esp + 0x7b8]
call fcn.00407850
lea edx, [esp + 0x7b0]
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x150], 0xee2fc8b5
mov eax, 0xa5620fee
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
or edi, 8
mov dword [esp + 0x15c], esi
movaps xmm1, xmmword [esp + 0x150]
and dword [esp + 0x798], 0
and dword [esp + 0x7a8], 0
mov dword [esp + 0x5d4], ecx
lea ecx, [esp + 0x150]
mov dword [esp + 0x5d0], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x5d8], eax
mov dword [esp + 0x5dc], esi
pxor xmm1, xmmword [esp + 0x5d0]
mov dword [esp + 0x14], edi
movaps xmmword [esp + 0x150], xmm1
mov dword [esp + 0x7ac], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477a77
sub ecx, edx
lea eax, [esp + 0x150]
push ecx
push eax
lea ecx, [esp + 0x7a0]
call fcn.00407850
lea edx, [esp + 0x798]
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x160], 0xee38dfa5
mov eax, 0xa5620fee
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
or edi, 0x10
mov dword [esp + 0x16c], esi
movaps xmm1, xmmword [esp + 0x160]
and dword [esp + 0x780], 0
and dword [esp + 0x790], 0
mov dword [esp + 0x5e4], ecx
lea ecx, [esp + 0x160]
mov dword [esp + 0x5e0], 0xee5bb0c1
lea edx, [ecx + 1]
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x5ec], esi
pxor xmm1, xmmword [esp + 0x5e0]
mov dword [esp + 0x14], edi
movaps xmmword [esp + 0x160], xmm1
mov dword [esp + 0x794], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477b3c
sub ecx, edx
lea eax, [esp + 0x160]
push ecx
push eax
lea ecx, [esp + 0x788]
call fcn.00407850
lea edx, [esp + 0x780]
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x350], 0x9638dfa5
mov eax, 0xa5620fee
mov dword [esp + 0x354], ecx
mov dword [esp + 0x358], eax
or edi, 0x20
mov dword [esp + 0x35c], esi
movaps xmm1, xmmword [esp + 0x350]
mov dword [esp + 0x5f4], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x5f8], eax
lea eax, [esp + 0x350]
mov dword [esp + 0x5f0], 0xee5bb0c1
mov dword [esp + 0x5fc], esi
pxor xmm1, xmmword [esp + 0x5f0]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x354], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x2d0], 0xee3cdeb1
mov eax, 0xa5620fee
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x2d8], eax
or edi, 0x40
mov dword [esp + 0x2dc], esi
movaps xmm1, xmmword [esp + 0x2d0]
mov dword [esp + 0x604], ecx
lea ecx, [esp + 0x888]
mov dword [esp + 0x608], eax
lea eax, [esp + 0x2d0]
mov dword [esp + 0x600], 0xee5bb0c1
mov dword [esp + 0x60c], esi
pxor xmm1, xmmword [esp + 0x600]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x2d4], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x2e0], 0xee3cc0ab
mov eax, 0xa5620fee
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2e8], eax
or edi, 0x80
mov dword [esp + 0x2ec], esi
movaps xmm1, xmmword [esp + 0x2e0]
mov dword [esp + 0x614], ecx
lea ecx, [esp + 0x870]
mov dword [esp + 0x618], eax
lea eax, [esp + 0x2e0]
mov dword [esp + 0x610], 0xee5bb0c1
mov dword [esp + 0x61c], esi
pxor xmm1, xmmword [esp + 0x610]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x2e4], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x2f0], 0x893ec0ab
mov eax, 0xa5620fee
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x2f8], eax
or edi, 0x100
mov dword [esp + 0x2fc], esi
movaps xmm1, xmmword [esp + 0x2f0]
mov dword [esp + 0x624], ecx
lea ecx, [esp + 0x918]
mov dword [esp + 0x628], eax
lea eax, [esp + 0x2f0]
mov dword [esp + 0x620], 0xee5bb0c1
mov dword [esp + 0x62c], esi
pxor xmm1, xmmword [esp + 0x620]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x2f4], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x300], 0xee2bdda3
mov eax, 0xa5620fee
mov dword [esp + 0x304], ecx
mov dword [esp + 0x308], eax
or edi, 0x200
mov dword [esp + 0x30c], esi
movaps xmm1, xmmword [esp + 0x300]
mov dword [esp + 0x634], ecx
lea ecx, [esp + 0x900]
mov dword [esp + 0x638], eax
lea eax, [esp + 0x300]
mov dword [esp + 0x630], 0xee5bb0c1
mov dword [esp + 0x63c], esi
pxor xmm1, xmmword [esp + 0x630]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x304], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov ecx, 0x3485ac91
mov dword [esp + 0x310], 0xee2fd1a3
mov eax, 0xa5620fee
mov dword [esp + 0x314], ecx
mov dword [esp + 0x318], eax
or edi, 0x400
mov dword [esp + 0x31c], esi
movaps xmm1, xmmword [esp + 0x310]
mov dword [esp + 0x644], ecx
lea ecx, [esp + 0x8e8]
mov dword [esp + 0x648], eax
lea eax, [esp + 0x310]
mov dword [esp + 0x640], 0xee5bb0c1
mov dword [esp + 0x64c], esi
pxor xmm1, xmmword [esp + 0x640]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x314], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
mov dword [esp + 0x320], 0xee28d2b7
lea eax, [esp + 0x320]
mov dword [esp + 0x324], 0x3485ac91
lea ecx, [esp + 0x8d0]
mov dword [esp + 0x328], 0xa5620fee
or edi, 0x800
mov dword [esp + 0x32c], esi
movaps xmm1, xmmword [esp + 0x320]
mov dword [esp + 0x6e0], 0xee5bb0c1
mov dword [esp + 0x6e4], 0x3485ac91
mov dword [esp + 0x6e8], 0xa5620fee
mov dword [esp + 0x6ec], esi
pxor xmm1, xmmword [esp + 0x6e0]
push eax
mov dword [esp + 0x18], edi
movaps xmmword [esp + 0x324], xmm1
call fcn.00407785
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.0040efa8
test al, al
jne 0x477f80
xor eax, eax
inc eax
mov byte [esp + 0x1b], al
jmp 0x477f85
mov byte [esp + 0x1b], 0
mov eax, dword [esp + 0x14]
test eax, 0x800
je 0x477fa9
and eax, 0xfffff7ff
lea ecx, [esp + 0x8d0]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test eax, 0x400
je 0x477fc9
and eax, 0xfffffbff
lea ecx, [esp + 0x8e8]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test eax, 0x200
je 0x477fe9
and eax, 0xfffffdff
lea ecx, [esp + 0x900]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test eax, 0x100
je 0x478009
and eax, 0xfffffeff
lea ecx, [esp + 0x918]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, al
jns 0x478026
and eax, 0xffffff7f
lea ecx, [esp + 0x870]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 0x40
je 0x478041
and eax, 0xffffffbf
lea ecx, [esp + 0x888]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 0x20
je 0x478059
and eax, 0xffffffdf
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 0x10
je 0x478074
and eax, 0xffffffef
lea ecx, [esp + 0x780]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 8
je 0x47808f
and eax, 0xfffffff7
lea ecx, [esp + 0x798]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 4
je 0x4780aa
and eax, 0xfffffffb
lea ecx, [esp + 0x7b0]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
test al, 2
je 0x4780c5
and eax, 0xfffffffd
lea ecx, [esp + 0x7c8]
mov dword [esp + 0x14], eax
call fcn.004077ce
mov eax, dword [esp + 0x14]
and eax, 0xfffffffe
lea ecx, [esp + 0x188]
mov dword [esp + 0x14], eax
call fcn.004077ce
cmp byte [esp + 0x1b], 0
je 0x478159
mov dword [esp + 0x330], 0xee3ec8a4
lea eax, [esp + 0x330]
mov dword [esp + 0x334], 0x3485ac91
lea ecx, [esp + 0x34]
mov dword [esp + 0x338], 0xa5620fee
mov dword [esp + 0x33c], esi
movaps xmm1, xmmword [esp + 0x330]
mov dword [esp + 0x660], 0xee5bb0c1
mov dword [esp + 0x664], 0x3485ac91
mov dword [esp + 0x668], 0xa5620fee
mov dword [esp + 0x66c], esi
pxor xmm1, xmmword [esp + 0x660]
push eax
movaps xmmword [esp + 0x334], xmm1
call fcn.0040782f
mov edi, dword [esp + 0x14]
mov ecx, 0x3485ac91
mov dword [esp + 0x3b0], 0xee5bb0ef
mov eax, 0xa5620fee
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], esi
movaps xmm1, xmmword [esp + 0x3b0]
mov dword [esp + 0x674], ecx
lea ecx, [esp + 0x870]
mov dword [esp + 0x678], eax
mov dword [esp + 0x670], 0xee5bb0c1
mov dword [esp + 0x67c], esi
pxor xmm1, xmmword [esp + 0x670]
push 0x14
pop edx
movaps xmmword [esp + 0x3b0], xmm1
call fcn.0049b88f
mov esi, eax
mov dword [esp + 0x340], 0xee5bb09d
mov edx, 0x3485ac91
mov dword [esp + 0x680], 0xee5bb0c1
mov ecx, 0xa5620fee
mov dword [esp + 0x344], edx
mov eax, 0xffb2cff4
mov dword [esp + 0x348], ecx
mov dword [esp + 0x34c], eax
movaps xmm1, xmmword [esp + 0x340]
mov dword [esp + 0x684], edx
lea edx, [ebp + 0x80]
mov dword [esp + 0x688], ecx
lea ecx, [esp + 0x888]
mov dword [esp + 0x68c], eax
lea eax, [esp + 0x340]
pxor xmm1, xmmword [esp + 0x680]
push eax
movaps xmmword [esp + 0x344], xmm1
call fcn.0040eea7
pop ecx
push esi
push eax
push dword [esp + 0x7c]
lea ecx, [esp + 0x194]
call fcn.004120e5
lea eax, [esp + 0x3b0]
push eax
lea edx, [esp + 0x18c]
lea ecx, [esp + 0x54]
call fcn.0040eef3
pop ecx
lea ecx, [esp + 0x34]
push ecx
mov ecx, eax
call fcn.0040c90c
push eax
lea ecx, [esp + 0x94]
call fcn.00407752
lea ecx, [esp + 0x50]
call fcn.004077ce
lea ecx, [esp + 0x188]
call fcn.004077ce
lea ecx, [esp + 0x888]
call fcn.004077ce
lea ecx, [esp + 0x870]
call fcn.004077ce
cmp dword [esp + 0x3e4], 0x10
lea ecx, [esp + 0x360]
mov eax, 0xa5620fee
mov dword [esp + 0x360], 0x9e2fc4a9
mov dword [esp + 0x368], eax
mov esi, 0xffb2cff4
mov dword [esp + 0x364], 0x1baa96e2
mov dword [esp + 0x36c], esi
movaps xmm1, xmmword [esp + 0x360]
mov dword [esp + 0x698], eax
lea eax, [esp + 0x3d0]
cmovae eax, dword [esp + 0x3d0]
mov dword [esp + 0x690], 0xee5bb0c1
mov dword [esp + 0x694], 0x3485ac91
mov dword [esp + 0x69c], esi
pxor xmm1, xmmword [esp + 0x690]
movaps xmmword [esp + 0x360], xmm1
push ecx
push eax
call fcn.00437980
test eax, eax
lea edx, [esp + 0x98]
lea ecx, [esp + 0x3d8]
setne byte [esp + 0x7c]
cmp dword [esp + 0xac], 0x10
push dword [esp + 0x7c]
cmovae edx, dword [esp + 0x9c]
cmp dword [esp + 0x3f0], 0x10
cmovae ecx, dword [esp + 0x3dc]
call fcn.0049ebc4
add esp, 0xc
test al, al
je 0x47844a
cmp dword [esp + 0xa4], 0x10
lea eax, [esp + 0x90]
mov ecx, 0xa5620fee
mov dword [esp + 0x370], 0x803ec0ae
cmovae eax, dword [esp + 0x90]
mov edx, 0x3485ac91
mov dword [esp + 0x378], ecx
mov dword [esp + 0x6a8], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x374], edx
push ecx
xor ecx, ecx
mov dword [esp + 0x380], esi
movaps xmm1, xmmword [esp + 0x374]
push ecx
push ecx
push eax
lea eax, [esp + 0x380]
mov dword [esp + 0x6b4], edx
mov dword [esp + 0x6b0], 0xee5bb0c1
mov dword [esp + 0x6bc], esi
pxor xmm1, xmmword [esp + 0x6b0]
push eax
push ecx
movaps xmmword [esp + 0x388], xmm1
call dword [0x4d62b8]
sub esp, 0x18
lea eax, [esp + 0x8d0]
mov ecx, esp
push eax
call fcn.0040c998
call fcn.0048e369
add esp, 0x18
lea ecx, [esp + 0x90]
call fcn.004077ce
lea ecx, [esp + 0x3f4]
call fcn.0040da76
lea ecx, [esp + 0x34]
call fcn.004077ce
lea ecx, [esp + 0xd4]
call fcn.0040da76
lea ecx, [esp + 0x3e8]
call fcn.0040da76
lea ecx, [esp + 0x3d0]
call fcn.004077ce
lea ecx, [esp + 0x78]
call fcn.004077ce
lea ecx, [esp + 0x8a0]
call fcn.004077ce
lea ecx, [esp + 0x8b8]
call fcn.004077ce
lea ecx, [esp + 0x6b0]
call fcn.0040b2d1
lea eax, [esp + 0x860]
push eax
lea ecx, [esp + 0x6b4]
call fcn.0040b295
test al, al
jne 0x475b8c
lea ecx, [ebp + 8]
call fcn.004077ce
push dword [ebp + 0x20]
lea ecx, [ebp + 0x28]
call fcn.0040d446
push dword [ebp + 0x30]
lea ecx, [ebp + 0x38]
call fcn.0040d446
push dword [ebp + 0x40]
lea ecx, [ebp + 0x48]
call fcn.0040d446
push dword [ebp + 0x50]
lea ecx, [ebp + 0x58]
call fcn.0040d446
push dword [ebp + 0x60]
lea ecx, [ebp + 0x68]
call fcn.0040d446
push dword [ebp + 0x70]
lea ecx, [ebp + 0x78]
call fcn.0040d446
lea ecx, [ebp + 0x80]
call fcn.004077ce
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.0043bb2b
int3