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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x64
push 0
push 0
dec ecx
jne 0x51ed25
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x90]
lea edi, [ebp - 0x1e8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3c], ecx
mov edi, edx
mov dword [ebp - 0x38], eax
xor eax, eax
push ebp
push 0x524b63
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xd4], 0xffffffff
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
sub dword [ebp - 0x1dc], eax
push edi
lea esi, [ebp - 0x1e8]
lea edi, [ebp - 0x218]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
jl 0x51edcd
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax]
add dword [ebp - 0x1e8], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 4]
add dword [ebp - 0x1e4], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 8]
sub dword [ebp - 0x1e0], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 0xc]
sub dword [ebp - 0x1dc], eax
mov eax, dword [ebp + 0x44]
mov eax, dword [eax]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + 8]
xor edx, edx
call fcn.004013d0
lea eax, [ebp - 0x30]
xor edx, edx
call fcn.004013d8
xor eax, eax
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xcd], 0
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax]
mov byte [ebp - 0xcf], al
mov eax, dword [ebp + 0x18]
mov byte [eax], 0
mov eax, dword [ebp + 0x7c]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x22c]
xor ecx, ecx
mov edx, 0x14
call fcn.004010c0
mov dword [ebp - 0x22c], 0x14
mov dword [ebp - 0x70], 0xffffffff
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x42], 0
mov byte [ebp - 0xa9], 1
mov byte [ebp - 0xaa], 1
mov eax, dword [ebp + 0x20]
mov byte [eax], 0
mov eax, dword [ebp + 0x1c]
mov byte [eax], 0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
xor edx, edx
call fcn.004013d8
mov eax, dword [ebp + 0x4c]
xor edx, edx
mov dword [eax], edx
mov byte [ebp - 0xb8], 0
movzx eax, byte [ebp + 0x80]
mov byte [ebp - 0xb9], al
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x51eea4
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 2
jae 0x51eea4
mov byte [ebp - 0xb8], 1
mov byte [ebp + 0x80], 0
push edi
lea esi, [ebp - 0x1e8]
lea edi, [ebp - 0x1f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
lea eax, [ebp - 0x14]
xor edx, edx
call fcn.004013d8
lea eax, [ebp - 0x18]
xor edx, edx
call fcn.004013d8
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004013d8
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x78]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
cmp byte [ebp + 0x84], 0
jne 0x51ef13
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x29], 0
je 0x51efc7
cmp byte [ebp + 0x84], 0
jne 0x51efc7
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.004038c0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x51ef5c
mov dword [ebp - 0xd8], 0x1fffffff
jmp 0x51ef6d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xd8]
call fcn.004038c8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e4]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x38]
call fcn.00403990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.004038c8
mov byte [ebp - 0xb7], 1
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
jmp 0x5249d7
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0xc]
mov byte [ebp - 0xba], al
mov eax, dword [ebp + 0x4c]
inc dword [eax]
mov eax, dword [ebp - 0x38]
call fcn.0051ec0c
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x38]
call fcn.0051ec38
mov dword [ebp - 0x4c], eax
mov edx, dword [edi]
mov eax, 0x524b80
call fcn.00401498
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jle 0x51f086
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x524b80
call fcn.00402a70
mov esi, eax
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00402a70
mov ebx, eax
test ebx, ebx
jle 0x51f064
cmp esi, ebx
jg 0x51f086
test esi, esi
jne 0x51f06c
test ebx, ebx
jg 0x51f086
cmp esi, ebx
jge 0x51f077
test esi, esi
jle 0x51f077
mov dword [ebp - 0x78], esi
test ebx, ebx
jne 0x51f080
xor eax, eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jg 0x51f038
cmp dword [ebp - 0x78], 0
jle 0x51f0a2
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.00401470
jmp 0x51f0ac
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.004013d8
lea eax, [ebp - 0x10]
call fcn.004012b0
call fcn.00401440
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x51f251
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x524ba0
mov dword [ebp - 0x238], eax
mov eax, 0x524b80
mov dword [ebp - 0x234], eax
mov eax, 0x524b90
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x238]
push eax
mov eax, 0x524bb0
mov dword [ebp - 0x244], eax
mov eax, 0x524bcc
mov dword [ebp - 0x240], eax
mov eax, 0x524be4
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x244]
mov edx, 2
pop ecx
call fcn.0051e99c
lea eax, [ebp - 0x10]
call fcn.004012b0
call fcn.00401440
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0xd4], 0
jl 0x51f176
cmp dword [ebp - 0x98], 0
jle 0x51f176
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jne 0x51f176
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x51f1be
cmp dword [ebp - 0xa8], 0
jne 0x51f1be
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x51f1be
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00402f08
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x51f1be
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00528514
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
jne 0x51f1fc
push edi
lea esi, [ebp - 0x1f8]
lea edi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
cmp byte [ebp - 0xb7], 0
jne 0x51f237
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x200], eax
jmp 0x51f237
push edi
lea esi, [ebp - 0x1e8]
lea edi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
cmp byte [ebp - 0xb7], 0
jne 0x51f237
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x200], eax
add dword [ebp - 0x204], 0x2710
mov eax, dword [ebp - 0x204]
add eax, dword [ebp - 0x50]
dec eax
mov dword [ebp - 0x1fc], eax
cmp byte [ebp + 0x88], 0
jne 0x51f278
cmp dword [ebp - 0xd4], 0
jl 0x51f270
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x51f278
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x51f28f
cmp dword [ebp - 0x98], 0
jle 0x51f28f
xor eax, eax
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x41], 0
jmp 0x51f42d
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x51f2dc
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x51f2dc
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp + 0x88], 0
jne 0x51f2ce
cmp dword [ebp - 0x98], 0
jle 0x51f2ce
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x51f2ce
cmp byte [ebp - 0xb9], 0
jne 0x51f2d2
xor eax, eax
jmp 0x51f2d4
mov al, 1
mov byte [ebp - 0x41], al
jmp 0x51f42d
cmp byte [ebp + 0x80], 0
je 0x51f428
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
setne al
or al, byte [ebp + 0x84]
je 0x51f428
cmp dword [ebp - 0x98], 0
jle 0x51f38b
xor eax, eax
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x22c]
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x50]
and al, byte [ebp + 0x80]
and eax, 0x7f
mov eax, dword [eax*4 + 0x5a353c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
push eax
lea eax, [ebp - 0x208]
push eax
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
jne 0x51f3b0
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x7c], eax
jmp 0x51f3b0
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp - 0xb7], 0
je 0x51f3b0
mov eax, dword [ebp + 0x78]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp + 0x88], 0
jne 0x51f3b0
mov eax, dword [ebp + 0x74]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp - 0x98], 0
jle 0x51f3c4
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x98]
jl 0x51f3c8
xor eax, eax
jmp 0x51f3ca
mov al, 1
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x51f42d
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x51f42d
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x51f42d
cmp byte [ebp + 0x80], 0
je 0x51f42d
cmp byte [ebp - 0xcd], 0
jne 0x51f42d
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x51f42d
mov byte [ebp - 0xa9], 1
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xc8]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x18], edx
jmp 0x5249f7
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x78], 0
jle 0x51f457
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jg 0x51f441
cmp dword [ebp - 0x7c], 0
jne 0x51f457
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.00401470
jmp 0x51f47c
cmp dword [ebp - 0x7c], 0
jle 0x51f472
lea eax, [ebp - 0x10]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x7c]
mov edx, 1
call fcn.00401470
jmp 0x51f47c
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.004013d8
lea eax, [ebp - 0x10]
call fcn.004012b0
call fcn.00401440
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x51f4f8
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x524ba0
mov dword [ebp - 0x238], eax
mov eax, 0x524b80
mov dword [ebp - 0x234], eax
mov eax, 0x524b90
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x238]
push eax
mov eax, 0x524bb0
mov dword [ebp - 0x244], eax
mov eax, 0x524bcc
mov dword [ebp - 0x240], eax
mov eax, 0x524be4
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x244]
mov edx, 2
pop ecx
call fcn.0051e99c
lea eax, [ebp - 0x10]
call fcn.004012b0
call fcn.00401440
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x51f519
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov eax, dword [ebp - 0x10]
mov edx, 0x524bfc
call fcn.00401468
jne 0x51f553
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.004013d8
mov eax, edi
mov ecx, 1
mov edx, 1
call fcn.00401478
xor eax, eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x51f65d
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x51f65d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x51f65d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x51f5a3
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x51f5a3
cmp byte [ebp - 0xb9], 0
jne 0x51f62c
cmp dword [ebp - 0xa8], 0
je 0x51f5b8
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
jne 0x51f62c
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00401478
lea eax, [ebp - 0x14]
mov edx, 0x524bfc
call fcn.00401450
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0xa8], 0
je 0x51f5f2
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 1
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x51f62c
movzx eax, byte [ebp - 0xb9]
xor al, 1
and al, byte [ebp - 0xcd]
je 0x51f62c
cmp dword [ebp - 0xd4], 0
jl 0x51f62c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x51f62c
mov byte [ebp - 0x41], 1
cmp byte [ebp - 0x41], 0
je 0x51f65d
mov byte [ebp - 0xa9], 1
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xc8]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x18], edx
jmp 0x5249f7
cmp dword [ebp - 0x98], 0
jle 0x520cd1
mov byte [ebp - 0xb7], 0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x51f697
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x51f697
mov eax, dword [ebp - 0x50]
shr eax, 2
mov edx, dword [ebp + 0x68]
mov dword [edx], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x36], 0
je 0x51f6bd
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x51f6bd
mov eax, dword [ebp - 0x50]
shr eax, 2
mov edx, dword [ebp + 0x64]
mov dword [edx], eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x50]
jge 0x51f6da
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x4c]
jge 0x51f6f7
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x51f71a
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov edx, dword [edx]
call fcn.004013d8
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
call fcn.00401450
mov eax, dword [ebp - 0x3c]
lea eax, [ebp - 4]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x34]
mov edx, dword [edx]
call fcn.004013d8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x10]
call fcn.00401450
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
lea eax, [ebp - 8]
xor edx, edx
call fcn.004013d8
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
je 0x51f76f
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00401478
mov byte [ebp - 0xa9], 1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x520cd1
cmp byte [ebp + 0x84], 0
jne 0x51fec9
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x36], 0
je 0x51f7aa
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
sub dword [ebp - 0x1ec], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x51f7c1
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
add dword [ebp - 0x1ec], eax
mov eax, dword [ebp + 0x60]
mov eax, dword [eax]
sub dword [ebp - 0x1ec], eax
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x1ec]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x1f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push edi
lea esi, [ebp - 0x1f8]
lea edi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0xb6], 1
mov byte [ebp - 0xb5], 0
push 0
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x50]
and al, byte [ebp + 0x80]
and eax, 0x7f
mov eax, dword [eax*4 + 0x5a353c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xffffffdf
and edx, 0xfffffff7
and edx, 0xfffffdff
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 4]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0xc]
cmp eax, dword [ebp - 0x50]
jg 0x51f8d1
mov byte [ebp - 0xb6], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
cmp eax, dword [ebp - 0x1f0]
jg 0x51f8c0
mov byte [ebp - 0xba], 0
jmp 0x51f8d1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x1f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.004013d8
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x1f8]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
cmp byte [ebp - 0xb6], 0
je 0x51f958
cmp byte [ebp + 0x80], 0
jne 0x51f958
mov eax, dword [ebp - 0x1f0]
cmp eax, dword [ebp - 0x200]
jle 0x51f958
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp - 0x1f0]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
cmp eax, dword [ebp - 0x1e0]
jge 0x51fd54
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x39], 0
je 0x51fac6
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x70]
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
call fcn.00402200
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
cmp byte [ebp - 0xba], 0
jne 0x51f9ed
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0xc], 0
sete al
and al, byte [ebp - 0xb5]
je 0x51fa54
cmp dword [ebp - 0xd4], 0
jl 0x51fa54
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x51fa54
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
jmp 0x51faa0
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
or eax, 0x100
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x88]
call fcn.00403850
cmp dword [ebp - 0xd4], 0
jl 0x51fd06
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x51fd06
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 8]
jle 0x51fb0d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
mov dword [edx - 8], eax
cmp byte [ebp - 0xba], 0
jne 0x51fbd3
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
movzx edx, byte [ebp - 0xb5]
xor dl, 1
and edx, 0x7f
or eax, dword [edx*4 + 0x5a3534]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
cmp eax, dword [ebp - 0xa0]
jge 0x51fb99
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa0]
call fcn.00402a10
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x1f0], eax
jmp 0x51fd81
lea eax, [ebp - 0xc]
mov edx, 0x524c0c
call fcn.00401450
mov eax, dword [ebp - 0xc]
call fcn.004013e0
mov dword [ebp - 0x40], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp - 0x10]
call fcn.004013e0
mov edx, dword [ebp - 0x40]
call fcn.00402780
test eax, eax
je 0x51fd81
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.00401400
lea eax, [ebp - 0xc]
call fcn.004012b0
call fcn.00401440
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xa0], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa0]
call fcn.00402a10
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x1f0], eax
jmp 0x51fd81
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
or eax, 0x100
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
jmp 0x51fd81
cmp dword [ebp - 0xd4], 0
jl 0x51fd81
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x51fd81
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa0]
add dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x51fdca
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x51fdca
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
cmp eax, edx
jne 0x51fdca
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.004013d0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x41], 0
je 0x51fe68
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 0xff
call fcn.004038c8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.004038e8
mov eax, dword [ebp - 0x1f8]
sar eax, 1
jns 0x51fe07
adc eax, 0
mov ebx, eax
add ebx, ebx
mov eax, ebx
and eax, 0x80000003
jns 0x51fe19
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x51fe24
mov esi, 2
jmp 0x51fe26
xor esi, esi
mov ecx, dword [ebp - 0x1dc]
add ecx, esi
dec ecx
mov edx, ebx
mov eax, dword [ebp - 0x38]
call fcn.00403978
jmp 0x51fe60
cmp esi, 2
jne 0x51fe44
xor esi, esi
jmp 0x51fe49
mov esi, 2
mov ecx, dword [ebp - 0x1dc]
add ecx, esi
dec ecx
lea edx, [ebx + 2]
mov eax, dword [ebp - 0x38]
call fcn.00403968
add ebx, 2
cmp ebx, dword [ebp - 0x1f0]
jl 0x51fe3b
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
je 0x51fe97
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1f0], eax
jmp 0x51feac
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x1f0]
add eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1f4], eax
jmp 0x520b01
cmp byte [ebp + 0x88], 0
jne 0x51ff71
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x51fef0
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x51ff71
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle 0x51ff71
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
jne 0x51ff71
cmp dword [ebp - 0xa8], 0
je 0x51ff37
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x51ff37
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x51ff37
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x524b0d
lea eax, [ebp - 8]
mov edx, 0x524c2c
call fcn.004013d8
cmp byte [ebp - 0xba], 1
je 0x51ff5f
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00401450
add dword [ebp - 0x9c], 3
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
movzx eax, byte [eax]
mov byte [ebp - 0xcd], al
push edi
lea esi, [ebp - 0x1e8]
lea edi, [ebp - 0x1f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp - 0x1f8]
cmp eax, dword [ebp - 0x1f0]
jle 0x51ff9d
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x1f0], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x1f8]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
xor eax, eax
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x520016
cmp dword [ebp - 0x10], 0
je 0x520016
lea eax, [ebp - 0x10]
call fcn.004012b0
call fcn.00401440
mov ebx, eax
lea eax, [ebp - 0x10]
call fcn.004012b0
cmp word [eax + ebx*2 - 2], 0x20
jne 0x520016
mov edx, 0x524ba0
mov eax, dword [ebp - 0x38]
call fcn.004039c0
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x5201a4
mov eax, dword [ebp - 0x1f0]
sub eax, dword [ebp - 0x1f8]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x200]
sub edx, dword [ebp - 0x208]
cmp eax, edx
jle 0x5201a4
cmp byte [ebp - 0xba], 0
jne 0x520078
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x208]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x1f0], eax
jmp 0x5201a4
lea eax, [ebp - 0xc]
mov ecx, 0x524c0c
mov edx, dword [ebp - 0x10]
call fcn.00401458
mov eax, dword [ebp - 0xc]
call fcn.004013e0
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5a3544]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp - 0x10]
call fcn.004013e0
mov edx, dword [ebp - 0x40]
call fcn.00402780
test eax, eax
je 0x5201a4
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.00401400
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xa0], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
lea eax, [ebp - 0xc]
call fcn.004012b0
call fcn.00401440
push eax
mov eax, dword [ebp - 0xc]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa0]
call fcn.00402a10
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x1f8]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f4]
jl 0x520239
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1ec]
jge 0x520239
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x38]
jge 0x520239
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe4
push eax
push 0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffec
push eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp + 0x38]
sub edx, dword [eax]
push edx
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401bbc
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
cmp eax, dword [ebp - 0x98]
jne 0x520227
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x98]
add dword [eax - 0x48], edx
jmp 0x520239
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
mov edx, dword [ebp + 0x94]
add dword [edx - 0x48], eax
mov eax, dword [ebp - 0x1f0]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jge 0x52025c
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa0]
add dword [eax], edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
jne 0x520290
mov eax, dword [ebp - 0x1e0]
sub eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x5c], eax
jmp 0x52029c
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x24]
movzx eax, byte [eax]
and al, byte [ebp + 0x88]
je 0x520437
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x1ec]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp - 0x1ec]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1f0]
sub eax, dword [ebp - 0xa0]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
mov edx, dword [ebp + 0x30]
cmp eax, dword [edx + 8]
jne 0x52031a
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f8]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 8], edx
jmp 0x52034c
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1f8]
jle 0x520332
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f8]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
cmp eax, dword [ebp - 0x1f0]
jge 0x52034c
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 8], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 4]
mov edx, dword [ebp + 0x30]
cmp eax, dword [edx + 0xc]
jne 0x520374
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f4]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1ec]
mov dword [eax + 0xc], edx
jmp 0x5203a8
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x1f4]
jle 0x52038e
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f4]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x1ec]
jge 0x5203a8
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1ec]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x1f8]
jl 0x52040e
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x1f0]
jg 0x52040e
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f4]
jl 0x52040e
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1ec]
jge 0x52040e
mov eax, dword [ebp + 0x20]
mov byte [eax], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.004013d0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.004013d0
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x520437
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x1c]
push edi
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x54]
mov dword [edx], eax
cmp byte [ebp + 0x88], 0
jne 0x520482
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e0]
jle 0x520482
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
je 0x520482
cmp dword [ebp - 8], 0
je 0x52047e
cmp dword [ebp - 0xa8], 0
je 0x520482
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x520482
xor eax, eax
jmp 0x520484
mov al, 1
mov byte [ebp - 0xa9], al
movzx eax, byte [ebp - 0xa9]
mov byte [ebp - 0xaa], al
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x52053a
cmp byte [ebp - 0xa9], 0
je 0x5204de
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e0]
jg 0x5204c8
cmp dword [ebp - 8], 0
je 0x52053a
cmp byte [ebp - 0xcd], 0
jne 0x5204de
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jge 0x52053a
cmp dword [ebp - 0xa8], 0
je 0x52053a
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 1
cmp byte [ebp + 0x80], 0
je 0x520509
cmp byte [ebp - 0x41], 0
jne 0x52053a
cmp dword [ebp - 0xd4], 0
jl 0x52053a
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52053a
mov eax, dword [ebp - 0x210]
sub eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0xa0]
jl 0x520533
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov byte [ebp - 0xa9], 1
movzx eax, byte [ebp - 0xa9]
xor al, 1
and al, byte [ebp + 0x80]
je 0x520568
cmp dword [ebp - 0xd4], 0
jl 0x520568
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jg 0x520568
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0xcd], 0
je 0x520586
cmp byte [ebp - 0xa9], 0
jne 0x520586
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jg 0x520678
cmp byte [ebp - 0xcf], 0
jne 0x5205c6
cmp byte [ebp - 0xcd], 0
jne 0x5205c6
cmp byte [ebp - 0xa9], 0
jne 0x5205c6
cmp byte [ebp + 0x80], 0
jne 0x5205c6
cmp byte [ebp - 0xb8], 0
jne 0x5205c6
cmp byte [ebp - 0x41], 0
jne 0x5205c6
cmp byte [ebp - 0xba], 0
jne 0x520678
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
cmp eax, dword [edx]
jge 0x520620
cmp byte [ebp - 0xcf], 0
jne 0x520620
cmp byte [ebp - 0xcd], 0
jne 0x5205f0
mov eax, dword [ebp + 0x48]
mov eax, dword [eax]
mov edx, dword [ebp + 0x4c]
cmp eax, dword [edx]
jne 0x520620
cmp byte [ebp - 0xa9], 0
je 0x520620
cmp dword [ebp - 8], 0
je 0x520620
cmp byte [ebp + 0x80], 0
jne 0x520620
cmp byte [ebp - 0xb8], 0
jne 0x520620
cmp byte [ebp - 0x41], 0
jne 0x520620
cmp byte [ebp - 0xba], 0
jne 0x520678
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
sete al
and al, byte [ebp + 0x80]
je 0x5207ed
cmp byte [ebp - 0x41], 0
jne 0x5207ed
cmp byte [ebp - 0xba], 0
je 0x5207ed
cmp byte [ebp - 0xa9], 0
je 0x5207ed
cmp byte [ebp - 0xaa], 0
jne 0x5207ed
cmp dword [ebp - 8], 0
jne 0x5207ed
lea eax, [ebp - 0x248]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00401470
lea eax, [ebp - 0x248]
mov edx, 0x524c2c
call fcn.00401450
mov edx, dword [ebp - 0x248]
mov eax, dword [ebp - 0x38]
call fcn.004039c0
mov ebx, eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
sub eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
add ebx, eax
cmp ebx, dword [ebp - 0x1e0]
jle 0x5207e4
cmp byte [ebp - 0xb9], 0
je 0x5206e4
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jg 0x5206e8
xor eax, eax
jmp 0x5206ea
mov al, 1
mov byte [ebp - 0x41], al
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
cmp byte [ebp - 0xcd], 0
je 0x520726
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x520726
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x520726
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x524b0d
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x520763
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je 0x520763
cmp byte [ebp - 0xcd], 0
jne 0x520763
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x520763
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x524b0d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x5207b9
cmp byte [ebp - 0xcf], 0
jne 0x5207b9
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52079b
cmp byte [ebp + 0x80], 0
je 0x52079b
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jne 0x5207b9
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x5207b9
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x524b0d
cmp byte [ebp - 0xcf], 0
jne 0x520802
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x5207d3
cmp byte [ebp + 0x80], 0
jne 0x520802
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jne 0x520802
mov byte [ebp - 0xa9], 1
jmp 0x520802
mov byte [ebp - 0xa9], 1
jmp 0x520802
movzx eax, byte [ebp + 0x80]
xor al, 1
or al, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x520a05
cmp byte [ebp + 0x80], 0
je 0x520a05
push 0
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x50]
and al, byte [ebp + 0x80]
and eax, 0x7f
mov eax, dword [eax*4 + 0x5a353c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xfffffdff
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
or eax, 0x400
push eax
lea eax, [ebp - 0x208]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401dc4
mov eax, dword [ebp - 0x1fc]
sub eax, dword [ebp - 0x204]
cmp eax, dword [ebp - 0x50]
setle byte [ebp - 0xa9]
cmp byte [ebp - 0xa9], 0
je 0x5208cf
mov eax, dword [ebp - 0x1e0]
cmp eax, dword [ebp - 0x208]
jle 0x5208bb
mov eax, dword [ebp - 0x1e0]
cmp eax, dword [ebp - 0x200]
jge 0x5208c7
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
je 0x5208c7
xor eax, eax
jmp 0x5208c9
mov al, 1
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x520a78
cmp byte [ebp - 0xba], 0
je 0x520a78
mov eax, dword [ebp - 0x1e4]
add eax, dword [ebp - 0xb0]
mov edx, dword [ebp + 0x6c]
add eax, dword [edx]
mov edx, dword [ebp + 0x70]
add eax, dword [edx]
add eax, dword [ebp - 0x50]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
cmp eax, dword [edx + 0xc]
jle 0x520a78
lea eax, [ebp - 0x24c]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00401470
lea eax, [ebp - 0x24c]
mov edx, 0x524c2c
call fcn.00401450
mov edx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x38]
call fcn.004039c0
mov edx, dword [ebp + 0x7c]
mov edx, dword [edx]
sub edx, dword [ebp - 0xa0]
add edx, dword [ebp - 0x1e8]
add edx, dword [ebp + 0x10]
add eax, edx
cmp eax, dword [ebp - 0x1e0]
jle 0x520989
cmp dword [ebp - 0xa8], 0
je 0x520a78
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x520a78
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0x41], 0
jne 0x520a78
cmp byte [ebp - 0xaa], 0
jne 0x520a78
cmp dword [ebp - 0xa8], 0
je 0x520a78
cmp dword [ebp - 0xd4], 0
jge 0x520a78
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x520a78
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp + 0x8c]
mov edx, dword [ebp - 0xa0]
add dword [eax + 8], edx
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
jge 0x524b0d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x524b0d
cmp byte [ebp + 0x88], 0
jne 0x520a78
cmp byte [ebp + 0x80], 0
je 0x520a1d
cmp byte [ebp - 0x41], 0
jne 0x520a78
cmp byte [ebp - 0xaa], 0
jne 0x520a78
cmp dword [ebp - 0xa8], 0
je 0x520a78
cmp dword [ebp - 0xd4], 0
jge 0x520a78
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x520a78
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp + 0x8c]
mov edx, dword [ebp - 0xa0]
add dword [eax + 8], edx
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
jge 0x524b0d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x524b0d
movzx eax, byte [ebp - 0xa9]
and al, byte [ebp + 0x80]
je 0x520ac6
cmp byte [ebp - 0x41], 0
jne 0x520ac6
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e0]
jl 0x520ac6
mov eax, edi
call fcn.004012b0
call fcn.00401440
cmp eax, dword [ebp - 0x98]
jle 0x520ac6
mov eax, dword [edi]
mov edx, dword [ebp - 0x98]
cmp word [eax + edx*2], 0x3c
je 0x520af4
cmp byte [ebp + 0x80], 0
je 0x520af4
cmp byte [ebp - 0x41], 0
jne 0x520aef
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e0]
jge 0x520aef
xor eax, eax
jmp 0x520af1
mov al, 1
mov byte [ebp - 0x41], al
movzx eax, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x10]
call fcn.00401450
cmp byte [ebp + 0x80], 0
je 0x520b92
cmp byte [ebp - 0x41], 0
jne 0x520b24
cmp byte [ebp + 0x84], 0
jne 0x520b92
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
jl 0x520b92
mov byte [ebp - 0xce], 0
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x520b5b
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x520b5b
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x520b5b
cmp byte [ebp - 0xa9], 0
jne 0x520b5b
mov byte [ebp - 0xce], 1
mov eax, dword [ebp + 0x5c]
dec dword [eax]
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
jg 0x520bc0
cmp byte [ebp - 0xce], 0
jne 0x520bc0
mov byte [ebp - 0x41], 0
mov byte [ebp - 0xa9], 1
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
jmp 0x520bc0
cmp byte [ebp - 0xb8], 0
je 0x520bc0
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x520ba8
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov byte [ebp - 0xb8], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
cmp byte [ebp - 0xa9], 0
jne 0x520bdc
cmp byte [ebp + 0x80], 0
jne 0x520c56
cmp byte [ebp - 0x41], 0
jne 0x520c56
lea eax, [ebp - 0x250]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00401470
mov edx, dword [ebp - 0x250]
lea eax, [ebp - 0x14]
call fcn.00401450
cmp byte [ebp - 0xba], 1
je 0x520c17
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00401450
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00401478
cmp byte [ebp - 0x41], 0
je 0x520c3a
mov eax, dword [ebp + 0x70]
mov edx, dword [ebp - 0xc4]
mov dword [eax], edx
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xcc], eax
jmp 0x520cd1
mov eax, dword [ebp + 0x4c]
dec dword [eax]
cmp dword [ebp - 0xa8], 0
je 0x520c6e
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa0]
sub dword [eax], edx
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0xb4]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x520ca6
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
call fcn.004013d0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 4]
call fcn.004013d0
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xc8]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x18], edx
mov edx, dword [edi]
mov eax, 0x524b80
call fcn.00401498
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 1
jne 0x520d00
mov eax, edi
call fcn.004012b0
call fcn.00401440
cmp eax, 2
jg 0x520d00
mov eax, edi
xor edx, edx
call fcn.004013d0
cmp byte [ebp - 0x41], 0
jne 0x5249d7
cmp dword [ebp - 0x78], 1
jne 0x5249d7
mov eax, edi
call fcn.004012b0
call fcn.00401440
cmp eax, 2
jle 0x5249d7
mov eax, dword [edi]
cmp word [eax + 2], 0x2f
jne 0x521486
mov eax, edi
call fcn.004012b0
call fcn.00401440
cmp eax, 3
jle 0x521486
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
movzx eax, ax
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x5214a0.67
jmp dword [eax*4 + 0x520d6c]
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne 0x520e42
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x4c], 0x1fffffff
jne 0x520e07
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x520e42
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x4c]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0x1fffffff
jne 0x520e31
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x520e42
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xdc]
call fcn.00403900
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.004013d0
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x520e77
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x520e94
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
cmp eax, edx
jne 0x520e94
cmp byte [ebp + 0x84], 0
jne 0x520e94
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x50]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
cmp byte [ebp + 0x84], 0
jne 0x520ec0
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x520ec0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
cmp byte [ebp + 0x88], 0
je 0x520f73
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x520f4e
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1dc]
mov dword [eax - 0x58], edx
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1e8]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x5c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x60]
cmp eax, dword [ebp - 0x1e4]
je 0x520f27
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e8]
mov dword [eax - 0x64], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e4]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x1c]
push edi
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x54]
mov dword [edx], eax
mov eax, dword [ebp + 0x28]
mov byte [eax], 0
push 0
lea eax, [ebp - 0x260]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004021c8
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x260]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x520fd2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00402f08
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x520fd2
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00528514
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x30], 0
jne 0x520fd2
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x52104a
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
cmp eax, edx
jne 0x52104a
cmp byte [ebp + 0x84], 0
jne 0x52104a
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f8]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x1ec]
sub edx, dword [eax]
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x68], edx
mov eax, dword [ebp - 0x38]
call fcn.0051ec0c
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x68]
sub edx, eax
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x70], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x74]
mov eax, dword [ebp - 0x38]
call fcn.00403940
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x78]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
xor eax, eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x5c]
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0x24]
mov byte [eax], 0
cmp byte [ebp - 0xb8], 0
je case.0x5214a0.67
mov byte [ebp - 0xb8], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
jmp case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 0
jmp case.0x5214a0.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x5210e0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
movzx edx, byte [0x524c34]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 6]
call fcn.00401060
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x54
jne 0x521148
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
movzx edx, byte [0x524c38]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x55
jne 0x52116b
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 0
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 0
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x50
jne 0x5211c2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0x1fffffff
jne 0x52119f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x5211b0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe0]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x48
jne 0x5211db
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 0
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
movzx edx, byte [0x524c38]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
lea edx, [ebp - 0x264]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.00403878
mov edx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403880
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.00403868
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403870
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0x1fffffff
jne 0x5212a2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe4]
call fcn.00403900
jmp case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x80]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x84]
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0x1fffffff
jne 0x521309
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe8]
call fcn.00403900
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
movzx edx, byte [0x524c3c]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
mov byte [ebp - 0x41], 1
jmp case.0x5214a0.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x521376
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x521376
mov eax, dword [ebp + 0x50]
dec dword [eax]
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x5214a0.67
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.0x5214a0.67
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax - 0x86]
mov edx, dword [ebp + 0x40]
mov byte [edx], al
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x524c4c
call fcn.00401450
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x8c]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0x1fffffff
jne 0x52140b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xec]
call fcn.00403900
jmp case.0x5214a0.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x52143c
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x52143c
mov eax, dword [ebp + 0x50]
dec dword [eax]
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
movzx edx, byte [0x524c54]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
mov eax, dword [ebp + 0x94]
push eax
mov eax, dword [ebp - 0x38]
call fcn.0051ecf0
pop ecx
jmp case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 0
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 2]
call fcn.00401060
movzx eax, ax
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x5214a0.67
jmp dword [eax*4 + 0x5214a7]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x78]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x521566
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x521566
cmp byte [ebp + 0x84], 0
jne 0x521566
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f8]
mov dword [eax - 0x74], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f4]
mov dword [eax - 0x70], edx
cmp byte [ebp + 0x84], 0
jne 0x5215aa
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x52158a
mov dword [ebp - 0xf0], 0x1fffffff
jmp 0x52159b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xf0]
mov dword [eax - 0x4c], edx
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x5215da
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x52166f
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x52166f
cmp byte [ebp + 0x84], 0
jne 0x52166f
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x44], 0x1fffffff
je 0x52163a
cmp byte [ebp + 0x84], 0
jne 0x52163a
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0x1fffffff
jne 0x521629
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x52163a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xf4]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x50], eax
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x40], 0x1fffffff
je 0x52166f
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.004013d0
mov eax, dword [ebp + 0x2c]
mov byte [eax], 1
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x5c]
mov dword [eax], 0xffffffff
xor eax, eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jl 0x521855
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00402f08
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jle 0x521855
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00528514
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
je 0x52176e
cmp byte [ebp + 0x88], 0
jne 0x5217af
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov edx, dword [edi]
mov ecx, dword [ebp - 0x70]
mov eax, 0x524c64
call fcn.00402a70
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x52172a
mov eax, edi
call fcn.004012b0
call fcn.00401440
inc eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0xa8]
add eax, 0x40
push eax
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x70]
mov eax, dword [edi]
mov edx, dword [ebp - 0x70]
call fcn.00401470
lea edx, [ebp - 0x268]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x40]
call fcn.0051eaa8
mov edx, dword [ebp - 0x268]
mov eax, dword [ebp - 0xa8]
add eax, 0x40
call fcn.004013d0
jmp 0x5217af
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
je 0x5217af
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
jne 0x52179b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x5217af
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403900
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
cmp byte [ebp + 0x84], 0
jne 0x5217fc
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x5217e8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x5217fc
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x38], 0xffffd8f1
je 0x521846
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xc4], eax
jmp 0x521855
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x70]
sub ecx, 2
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524c7c
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
jle 0x5218e5
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x26c]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 0x28]
call fcn.004013d8
or edx, 0xffffffff
mov eax, dword [ebp - 0x28]
call fcn.00402680
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524c98
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0
jle 0x521960
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004013d8
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x270]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x270]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov eax, dword [ebp + 0x94]
add eax, 0xffffffc0
mov edx, dword [ebp - 0x28]
call fcn.004013d8
mov edx, dword [ebp - 0x20]
mov eax, 0x524cb0
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
jle 0x5219dd
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004013d8
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x274]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x274]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
mov edx, dword [ebp - 0x28]
call fcn.004013d8
jmp 0x5219ed
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
xor edx, edx
call fcn.004013d8
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
cmp dword [ebp - 0xa8], 0
je 0x521a1f
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x521a1f
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x30]
sub eax, 2
jb 0x521a1f
mov eax, dword [ebp + 0x5c]
mov dword [eax], 1
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 1
jb 0x521a2d
je 0x521a36
jmp 0x521a4c
mov byte [ebp + 0x80], 0
jmp 0x521a4c
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jne 0x521a4c
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
cmp byte [ebp + 0x88], 0
je 0x521aa6
mov eax, dword [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x260]
push eax
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1e4]
call fcn.004021c8
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x260]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x64], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e4]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x58]
inc dword [eax]
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
mov word [ebp - 0xa2], ax
movzx eax, word [ebp - 0xa2]
sub ax, 0x3e
je 0x521aee
sub ax, 0xe
je 0x521c6f
sub ax, 3
je 0x521c9b
sub ax, 3
je 0x521b11
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
mov edx, eax
or dl, byte [0x524c34]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x524c4c
call fcn.00401450
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov eax, dword [edi]
mov dword [ebp - 0x104], eax
mov edx, dword [ebp - 0x104]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
jle 0x521bf7
lea eax, [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 4
mov eax, dword [edi]
mov edx, 4
call fcn.00401470
mov eax, dword [ebp - 0x278]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524cc8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jle 0x521bf7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x27c]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x27c]
lea eax, [ebp - 0x28]
call fcn.004013d8
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.00402680
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
cmp dword [ebp - 0x9c], 0
sete al
and al, byte [ebp - 0xb7]
je case.0x5214a0.67
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, dword [ebp + 0x4c]
inc dword [eax]
cmp byte [ebp + 0x84], 0
je case.0x5214a0.67
cmp byte [ebp + 0x88], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je case.0x5214a0.67
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle case.0x5214a0.67
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
je 0x51ff37
jmp case.0x5214a0.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x5c], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x90]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
jmp case.0x5214a0.67
lea eax, [ebp - 0x280]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
mov eax, dword [edi]
mov edx, 1
call fcn.00401470
mov edx, dword [ebp - 0x280]
lea eax, [ebp - 0x14]
call fcn.00401450
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je case.0x5214a0.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5214a0.67
lea eax, [ebp - 0x284]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 6
call fcn.00401470
mov eax, dword [ebp - 0x284]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524ce8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jle 0x52210e
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x288]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x288]
lea eax, [ebp - 0x28]
call fcn.004013d8
lea edx, [ebp - 0x28c]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x28c]
mov eax, 0x524d0c
call fcn.00401498
test eax, eax
jle 0x521db2
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x290]
mov eax, 0x524d24
call fcn.00401498
test eax, eax
jle 0x521eac
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 0
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
lea edx, [ebp - 0x29c]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x29c]
mov eax, 0x524d3c
call fcn.00401498
test eax, eax
jle 0x521fa6
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 1
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x52210e
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x52210e
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x52210e
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x52210e
xor eax, eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
push eax
call fcn.00401afc
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
jmp 0x5220c5
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x522098
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 4]
add ecx, dword [ebp - 0x64]
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
add edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x38]
call fcn.00403938
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
add dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx]
cmp eax, dword [ebp - 0x60]
jg 0x52205e
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
add dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx + 4]
cmp eax, dword [ebp - 0x64]
jg 0x522057
push 0
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call fcn.00401b1c
mov edx, dword [ebp - 0x20]
mov eax, 0x524d54
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jle 0x522531
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2a0]
mov eax, 0x524d0c
call fcn.00401498
test eax, eax
jle 0x5221d5
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x2a4]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2a4]
mov eax, 0x524d24
call fcn.00401498
test eax, eax
jle 0x5222cf
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 0
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
lea edx, [ebp - 0x2a8]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2a8]
mov eax, 0x524d3c
call fcn.00401498
test eax, eax
jle 0x5223c9
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 1
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x522531
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x522531
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x522531
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x522531
xor eax, eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
push eax
call fcn.00401afc
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
jmp 0x5224e8
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x5224bb
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 4]
add ecx, dword [ebp - 0x64]
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
add edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x38]
call fcn.00403938
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
add dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx]
cmp eax, dword [ebp - 0x60]
jg 0x522481
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
add dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx + 4]
cmp eax, dword [ebp - 0x64]
jg 0x52247a
push 0
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call fcn.00401b1c
mov edx, dword [ebp - 0x20]
mov eax, 0x524d84
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
jle 0x5227d0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
lea edx, [ebp - 0x2ac]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2ac]
mov eax, 0x524d0c
call fcn.00401498
test eax, eax
jle 0x5225f8
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2b0]
mov eax, 0x524d24
call fcn.00401498
test eax, eax
jle 0x52262c
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2b4]
mov eax, 0x524d3c
call fcn.00401498
test eax, eax
jle 0x522660
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x5227d0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x5227d0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x5227d0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x5227d0
xor eax, eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
push eax
call fcn.00401afc
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
jmp 0x522787
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x52275a
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
mov edx, dword [edx + 8]
sub edx, eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 4]
add ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
call fcn.00403938
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
add dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx]
cmp eax, dword [ebp - 0x60]
jg 0x522718
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
add dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x8c]
sub eax, dword [edx + 4]
cmp eax, dword [ebp - 0x64]
jg 0x522711
push 0
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401c6c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call fcn.00401b1c
mov edx, dword [ebp - 0x20]
mov eax, 0x524da8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524dc4
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jle 0x5229bc
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x28]
mov edx, 0x524de4
call fcn.004013d8
mov edx, dword [ebp - 0x20]
mov eax, 0x524df4
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
jle 0x522920
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 3
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
push 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
lea eax, [ebp - 0x260]
push eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx + 4]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
call fcn.004021c8
lea eax, [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x28]
mov edx, 0x524de4
call fcn.00401468
sete al
push eax
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.0051e30c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x5229d7
mov dword [ebp - 0x128], 0x1fffffff
jmp 0x5229e8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x128], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x128]
mov dword [eax - 0x7c], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x522a12
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x522a23
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.004038c0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
sub edx, 2
mov eax, dword [ebp - 0x38]
call fcn.00403990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.004038c8
jmp case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 1
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
sub ax, 0x49
je 0x522bec
sub ax, 9
jne case.0x5214a0.67
mov byte [ebp - 0x41], 1
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 4
call fcn.00401470
xor eax, eax
mov dword [ebp - 0x88], eax
lea edx, [ebp - 0x2b8]
mov eax, dword [ebp - 0x20]
call fcn.004025f0
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x12c]
mov eax, 0x524e08
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
jle 0x522b8a
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.004038c0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
mov ecx, dword [ebp - 0x1ec]
inc ecx
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x38]
call fcn.00403978
mov ecx, dword [ebp - 0x1ec]
inc ecx
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x38]
call fcn.00403968
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.004038c8
jmp case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x80], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x522c26
mov dword [ebp - 0x134], 0x1fffffff
jmp 0x522c37
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x134], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x134]
mov dword [eax - 0x84], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, 0xff00000d
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xff00000e
call fcn.00403850
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x522cad
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
mov edx, eax
or dl, byte [0x524c3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x4e
jne 0x522d9d
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524e20
call fcn.0051e528
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004010c8
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x5c], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x58]
jge case.0x5214a0.67
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0x58]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x1f8], eax
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x4d
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xa0]
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2bc]
mov eax, dword [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x2bc]
mov eax, 0x524e30
call fcn.00401498
add eax, 4
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
lea edx, [ebp - 0x2c0]
mov eax, dword [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x2c0]
lea eax, [ebp - 0x20]
call fcn.004013d8
mov edx, dword [ebp - 0x20]
mov eax, 0x524e44
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x138], eax
cmp dword [ebp - 0x138], 0
jle 0x522f29
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa4]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0xa0]
jne 0x522f29
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x2c]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x2c]
pop edx
call fcn.00401470
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.00401470
xor eax, eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524e58
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0
jle 0x522fa9
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x2c4]
mov eax, dword [ebp - 0x2c]
call fcn.0051e78c
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x2c]
call fcn.004013d8
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.004010c8
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524e70
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jle 0x523019
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x2c8]
mov eax, dword [ebp - 0x2c]
call fcn.0051e78c
mov edx, dword [ebp - 0x2c8]
lea eax, [ebp - 0x2c]
call fcn.004013d8
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.004010c8
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x98], edx
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x94], edx
lea edx, [ebp - 0x2cc]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2cc]
mov eax, 0x524d0c
call fcn.00401498
test eax, eax
jle 0x523069
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x2d0]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2d0]
mov eax, 0x524d24
call fcn.00401498
test eax, eax
jle 0x523163
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 0
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
lea edx, [ebp - 0x2d4]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2d4]
mov eax, 0x524d3c
call fcn.00401498
test eax, eax
jle 0x52325d
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401478
mov eax, dword [ebp - 0x28]
push eax
push 1
movzx eax, byte [ebp + 0x84]
xor al, 1
push eax
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x64]
push eax
mov eax, dword [ebp + 0x94]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.0051e0d8
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x294]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401b6c
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call fcn.004019c4
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x1e8]
mov edx, dword [ebp + 0x7c]
cmp eax, dword [edx]
jle 0x523315
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
add eax, dword [edx - 0x98]
mov edx, dword [ebp + 0x38]
sub edx, dword [ebp - 0x1e8]
cmp eax, edx
jle 0x523315
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f4]
jl 0x523315
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
add eax, dword [ebp - 0x1f4]
cmp eax, dword [ebp + 0x34]
jle 0x523315
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x523315
mov eax, dword [ebp + 0x1c]
mov byte [eax], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.004013d0
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x28], 0
je 0x5232fd
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.004013d0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa0]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xa4], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x64], 0
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
add eax, dword [edx - 0x98]
mov edx, dword [ebp - 0x1e0]
sub edx, dword [ebp - 0x1e8]
cmp eax, edx
jle 0x523360
mov eax, dword [ebp - 0x1e0]
sub eax, dword [ebp - 0x1e8]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0x98]
jle 0x523360
mov byte [ebp - 0x42], 1
jmp 0x5233a7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
mov edx, dword [ebp + 0x7c]
add dword [edx], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
add dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x78]
cmp eax, dword [edx]
jle 0x5233a7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524e8c
call fcn.00401498
test eax, eax
jle 0x523406
mov edx, dword [ebp - 0x20]
mov eax, 0x524ea4
call fcn.00401498
test eax, eax
jle 0x5233df
mov eax, dword [ebp - 0x38]
call fcn.0051ec0c
mov edx, dword [ebp + 0x78]
mov edx, dword [edx]
sub edx, eax
mov eax, dword [ebp + 0x60]
mov dword [eax], edx
jmp 0x523406
mov edx, dword [ebp - 0x20]
mov eax, 0x524ebc
call fcn.00401498
test eax, eax
jle 0x523406
mov eax, dword [ebp - 0x38]
call fcn.0051ec0c
mov edx, dword [ebp + 0x78]
mov edx, dword [edx]
sub edx, eax
shr edx, 1
mov eax, dword [ebp + 0x60]
mov dword [eax], edx
mov edx, dword [ebp - 0x20]
mov eax, 0x524ed8
call fcn.00401498
test eax, eax
jle case.0x5214a0.67
mov eax, dword [ebp - 0x38]
call fcn.0051ec0c
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov eax, dword [ebp + 0x60]
xor edx, edx
mov dword [eax], edx
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
sub ax, 0x49
jne 0x523518
mov eax, dword [edi]
mov dword [ebp - 0x144], eax
mov edx, dword [ebp - 0x144]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x2d8]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 2
mov eax, dword [edi]
mov edx, 2
call fcn.00401470
mov eax, dword [ebp - 0x2d8]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524cc8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x2dc]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x2dc]
lea eax, [ebp - 0x28]
call fcn.004013d8
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.00402680
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
jmp case.0x5214a0.67
mov dword [ebp - 0x88], 0x1fffffff
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
xor edx, edx
call fcn.004013d8
mov eax, dword [edi]
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0
jle 0x523687
lea eax, [ebp - 0x2e0]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
mov eax, dword [ebp - 0x2e0]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524ef0
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x158], eax
cmp dword [ebp - 0x158], 0
jle 0x523630
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
mov edx, dword [ebp - 0x28]
call fcn.004013d8
mov edx, dword [ebp - 0x20]
mov eax, 0x524e08
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
jle 0x523687
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x50]
mov eax, dword [eax]
add eax, eax
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [ebp + 0x7c]
add dword [edx], eax
cmp byte [ebp - 0x43], 0
je 0x5236a4
mov byte [ebp - 0x42], 1
jmp 0x5236a8
mov byte [ebp - 0x43], 1
mov eax, dword [ebp + 0x50]
mov eax, dword [eax]
dec eax
add eax, eax
add eax, eax
lea eax, [eax + eax*2]
add dword [ebp - 0x1f8], eax
cmp byte [ebp + 0x84], 0
jne 0x523ae1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x523ae1
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xa8], 0
jne 0x52386c
cmp dword [ebp - 0x88], 0x1fffffff
je 0x52371d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xac], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x88]
call fcn.00403850
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403878
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x524f08
call fcn.00403880
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x85], 0
jne 0x52379c
mov eax, dword [ebp + 0x50]
test byte [eax], 1
je 0x523777
lea eax, [ebp - 0x1f8]
push eax
push 0
mov eax, dword [ebp - 0x38]
call fcn.004039f8
mov ecx, 1
mov edx, 0x524f24
call fcn.00401d6c
jmp 0x523832
lea eax, [ebp - 0x1f8]
push eax
push 0
mov eax, dword [ebp - 0x38]
call fcn.004039f8
mov ecx, 1
mov edx, 0x524f34
call fcn.00401d6c
jmp 0x523832
lea edx, [ebp - 0x2e4]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb0]
call fcn.00402658
mov edx, dword [ebp - 0x2e4]
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
mov ecx, 0x524f44
call fcn.00401458
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xb0]
push 0
lea eax, [ebp - 0x1f8]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
call fcn.004012b0
call fcn.00401440
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x20]
call fcn.004013e0
push eax
mov eax, dword [ebp - 0x38]
call fcn.004039f8
push eax
call fcn.00401d5c
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x20]
mov eax, dword [ebp - 0x38]
call fcn.004039c0
add eax, dword [ebp - 0x1f8]
sub eax, 0xc
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00403880
cmp dword [ebp - 0x88], 0x1fffffff
je 0x523ae1
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0xac]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
jmp 0x523ae1
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb4], 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x524f58
call fcn.00401468
jne 0x5239a8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x5238b3
mov dword [ebp - 0x160], 0x1fffffff
jmp 0x5238c4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x160], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x160]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x523902
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x523913
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00403920
mov eax, dword [ebp - 0x1f8]
add eax, 8
push eax
mov eax, dword [ebp - 0x1f4]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x1f4]
add ecx, 2
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.00403990
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x164], eax
cmp dword [ebp - 0x164], 0x1fffffff
jne 0x523978
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x523989
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x164]
call fcn.00403900
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x5239a8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x524f74
call fcn.00401468
jne 0x523ad4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x5239df
mov dword [ebp - 0x168], 0x1fffffff
jmp 0x5239f0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x168], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x168]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x523a2e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x523a3f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00403920
mov eax, dword [ebp - 0x1f8]
add eax, 8
push eax
mov eax, dword [ebp - 0x1f4]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x1f4]
add ecx, 2
mov edx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x38]
call fcn.00403948
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0x1fffffff
jne 0x523aa4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x523ab5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x16c]
call fcn.00403900
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x523ad4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
add dword [ebp - 0x1f8], 0xc
jmp case.0x5214a0.67
mov eax, dword [edi]
cmp word [eax + 4], 0x3e
je 0x523b19
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x523b07
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
mov edx, eax
or dl, byte [0x524c54]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x4c
jne 0x523b86
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x523b69
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 1
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb0], 1
cmp word [ebp - 0xa2], 0x46
jne case.0x5214a0.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524e20
call fcn.0051e528
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004010c8
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
mov edx, dword [ebp + 0xc]
add eax, dword [edx]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [ebp + 0x7c]
mov dword [edx], eax
jmp case.0x5214a0.67
mov eax, dword [edi]
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x170]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x2e8]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
mov eax, dword [ebp - 0x2e8]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524e8c
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
jle 0x523d66
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x2ec]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x2ec]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov edx, dword [ebp - 0x28]
mov eax, 0x524f90
call fcn.00401498
test eax, eax
jle 0x523d36
mov eax, dword [ebp + 0x40]
mov byte [eax], 1
jmp 0x523d66
mov edx, dword [ebp - 0x28]
mov eax, 0x524fa8
call fcn.00401498
test eax, eax
jle 0x523d4f
mov eax, dword [ebp + 0x40]
mov byte [eax], 0
jmp 0x523d66
mov edx, dword [ebp - 0x28]
mov eax, 0x524fc0
call fcn.00401498
test eax, eax
jle 0x523d66
mov eax, dword [ebp + 0x40]
mov byte [eax], 2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp dword [eax], 0
je 0x523d96
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x524c4c
call fcn.00401450
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
jmp 0x523da8
mov eax, dword [ebp + 0x40]
movzx eax, byte [eax]
mov edx, dword [ebp + 0x94]
mov byte [edx - 0xb5], al
mov edx, dword [ebp - 0x20]
mov eax, 0x524fdc
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
jle 0x523e44
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
mov eax, dword [ebp - 0x28]
call fcn.0051e57c
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524da8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
jle case.0x5214a0.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5214a0.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x524dc4
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
jle 0x523ee4
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x60]
xor al, 1
mov byte [ebp - 0x185], al
jmp 0x523eeb
mov byte [ebp - 0x185], 0
cmp byte [ebp - 0x185], 0
je 0x523fc1
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x8c], eax
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
push 0x1fffffff
mov eax, dword [ebp - 0x1dc]
add eax, 2
push eax
lea eax, [ebp - 0x260]
push eax
mov eax, dword [ebp + 0x94]
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1e4]
call fcn.004021c8
lea eax, [ebp - 0x260]
push eax
push 1
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.0051e30c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
cmp byte [ebp + 0x84], 0
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x523ff3
mov dword [ebp - 0x18c], 0x1fffffff
jmp 0x524004
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x18c]
mov dword [eax - 0x8c], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x524031
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x524042
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00403900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.004038c0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.004038c8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x1dc]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x38]
call fcn.00403990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.004038c8
jmp case.0x5214a0.67
mov eax, dword [edi]
mov dword [ebp - 0x190], eax
mov edx, dword [ebp - 0x190]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0
jle case.0x5214a0.67
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x524126
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x524106
mov dword [ebp - 0x198], 0x1fffffff
jmp 0x524117
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x198], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x198]
mov dword [eax - 0x7c], edx
lea eax, [ebp - 0x2f0]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.00401470
mov eax, dword [ebp - 0x2f0]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x524ff8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0
jle 0x5241ba
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x2f4]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x2f4]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00403880
mov edx, dword [ebp - 0x20]
mov eax, 0x525010
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jle 0x52424b
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x52424b
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x52424b
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.00403850
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403850
mov edx, dword [ebp - 0x20]
mov eax, 0x524da8
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jle 0x52427e
movzx eax, byte [ebp + 0x84]
xor al, 1
mov byte [ebp - 0x1a5], al
jmp 0x524285
mov byte [ebp - 0x1a5], 0
cmp byte [ebp - 0x1a5], 0
je 0x524340
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x524340
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x524340
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401470
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x5242ef
mov dword [ebp - 0x1ac], 0x1fffffff
jmp 0x524300
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x1ac], eax
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x28]
call fcn.0051e8bc
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0x1fffffff
jne 0x52432f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp 0x524340
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x1b0]
call fcn.00403900
mov edx, dword [ebp - 0x20]
mov eax, 0x52502c
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
jle 0x5244a9
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x525044
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea edx, [ebp - 0x2f8]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2f8]
mov eax, 0x525054
call fcn.00401498
test eax, eax
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
mov ecx, 0xa
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x2fc]
mov eax, 0x525078
call fcn.00401498
test eax, eax
jle case.0x5214a0.67
lea eax, [ebp - 0x304]
push eax
lea edx, [ebp - 0x308]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x308]
mov eax, 0x525078
call fcn.00401498
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401470
mov eax, dword [ebp - 0x304]
lea edx, [ebp - 0x300]
call fcn.00402640
mov edx, dword [ebp - 0x300]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov eax, dword [ebp - 0x28]
call fcn.0051e57c
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403890
jmp case.0x5214a0.67
mov edx, dword [ebp - 0x20]
mov eax, 0x52508c
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea edx, [ebp - 0x30c]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x30c]
lea eax, [ebp - 0x28]
call fcn.004013d8
mov eax, dword [ebp - 0x28]
call fcn.0051e57c
cmp eax, 5
ja case.0x52451d.0
jmp dword [eax*4 + 0x524524]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 8
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xa
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xc
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xe
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x10
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x28]
call fcn.0051e57c
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403890
jmp case.0x5214a0.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
call fcn.00401060
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x5245fe
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
mov edx, eax
or dl, byte [0x524c38]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x54
jne 0x52462b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00403898
mov edx, eax
or dl, byte [0x524c38]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004038a0
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x48
jne 0x524644
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 1
jmp case.0x5214a0.67
cmp word [ebp - 0xa2], 0x50
jne 0x524823
mov eax, dword [edi]
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1bc]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x310]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.00401470
mov eax, dword [ebp - 0x310]
lea edx, [ebp - 0x20]
call fcn.004025f0
mov edx, dword [ebp - 0x20]
mov eax, 0x52502c
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x525044
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x524d74
call fcn.00401498
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401470
lea edx, [ebp - 0x314]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x314]
mov eax, 0x5250a4
call fcn.00401498
test eax, eax
jle case.0x5214a0.67
lea eax, [ebp - 0x28]
mov ecx, 0x11
mov edx, 1
call fcn.00401478
lea edx, [ebp - 0x318]
mov eax, dword [ebp - 0x28]
call fcn.004025f0
mov edx, dword [ebp - 0x318]
mov eax, 0x5250d4
call fcn.00401498
dec eax
jne case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00403918
cmp al, 1
jne 0x5247bf
mov dword [ebp - 0x1c8], 0x1fffffff
jmp 0x5247d0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004038f8
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1c8]
mov dword [eax - 0x7c], edx
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0051e470
mov dword [ebp - 0x1cc], eax
cmp dword [ebp - 0x1cc], 0x1fffffff
jne 0x52480d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00403920
jmp case.0x5214a0.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x1cc]
call fcn.00403900
jmp case.0x5214a0.67
mov edx, dword [edi]
mov eax, 0x5250e4
call fcn.0051e528
dec eax
jne 0x524841
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 1
jmp case.0x5214a0.67
mov edx, dword [edi]
mov eax, 0x5250fc
call fcn.0051e528
dec eax
jne case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 1
jmp case.0x5214a0.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x524b90
call fcn.00401498
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00401470
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x525114
call fcn.0051e528
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401470
lea edx, [ebp - 0x31c]
mov eax, dword [ebp - 0x28]
call fcn.0051e78c
mov edx, dword [ebp - 0x31c]
lea eax, [ebp - 0x28]
call fcn.004013d8
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004010c8
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x94]
push eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
call fcn.0051ec98
pop ecx
jmp case.0x5214a0.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 1
cmp dword [ebp - 0x10], 0
je 0x524913
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004013d8
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004013d8
mov eax, dword [edi]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 0x1d0]
mov eax, 0x524b90
call fcn.00401498
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1d4], eax
cmp dword [ebp - 0x1d4], 0
jle 0x52494e
movzx eax, byte [ebp - 0x42]
xor al, 1
mov byte [ebp - 0x1d5], al
jmp 0x524955
mov byte [ebp - 0x1d5], 0
cmp byte [ebp - 0x1d5], 0
je 0x5249b7
lea eax, [ebp - 0x320]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401470
mov edx, dword [ebp - 0x320]
lea eax, [ebp - 0x1c]
call fcn.00401450
lea eax, [ebp - 0x324]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401470
mov edx, dword [ebp - 0x324]
lea eax, [ebp - 0x14]
call fcn.00401450
mov eax, edi
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401478
jmp 0x5249d7
cmp byte [ebp - 0x42], 0
jne 0x5249d7
mov eax, edi
call fcn.004012b0
call fcn.00401440
mov ecx, eax
mov eax, edi
mov edx, 1
call fcn.00401478
mov eax, edi
call fcn.004012b0
call fcn.00401440
test eax, eax
jle 0x5249f7
cmp byte [ebp - 0x41], 0
jne 0x5249f7
cmp byte [ebp - 0x42], 0
je 0x51eff8
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0xfffffffe
jne 0x524a1c
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x524a1c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x524b0d
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xc8]
mov dword [eax], edx
movzx eax, byte [ebp - 0xa9]
xor al, 1
and al, byte [ebp - 0x41]
je 0x524a6a
cmp byte [ebp + 0x80], 0
je 0x524a6a
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0xb0]
jle 0x524a54
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0xb4]
jle 0x524a6a
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0xb4]
mov dword [eax], edx
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0x54]
sub dword [eax], edx
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jge 0x524a81
mov eax, dword [ebp + 0x7c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x524b02
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
cmp eax, edx
jne 0x524b02
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x524b02
cmp byte [ebp + 0x84], 0
jne 0x524b02
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f8]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1ec]
mov dword [eax - 0x68], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x74]
mov eax, dword [ebp - 0x38]
call fcn.00403940
mov eax, dword [ebp - 0x1e8]
inc eax
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x74], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x68]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x70], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
call fcn.004013d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x524b6a
lea eax, [ebp - 0x324]
mov edx, 0x23
call fcn.004013c8
lea eax, [ebp - 0x290]
mov edx, 0xb
call fcn.004013c8
lea eax, [ebp - 0x264]
call fcn.004013c0
lea eax, [ebp - 0x250]
mov edx, 3
call fcn.004013c8
lea eax, [ebp - 0x34]
mov edx, 0xd
call fcn.004013c8
ret