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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x90
push 0
push 0
dec ecx
jne 0x52d3d5
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x90]
lea edi, [ebp - 0x348]
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 0x533b63
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 - 0x33c], eax
push edi
lea esi, [ebp - 0x348]
lea edi, [ebp - 0x378]
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 0x52d47d
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax]
add dword [ebp - 0x348], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 4]
add dword [ebp - 0x344], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 8]
sub dword [ebp - 0x340], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 0xc]
sub dword [ebp - 0x33c], 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.00406108
lea eax, [ebp - 0x30]
xor edx, edx
call fcn.0040615c
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 - 0x38c]
xor ecx, ecx
mov edx, 0x14
call fcn.00403658
mov dword [ebp - 0x38c], 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, 0xffffffdc
xor edx, edx
call fcn.0040615c
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 0x52d554
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 2
jae 0x52d554
mov byte [ebp - 0xb8], 1
mov byte [ebp + 0x80], 0
push edi
lea esi, [ebp - 0x348]
lea edi, [ebp - 0x358]
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.0040615c
lea eax, [ebp - 0x18]
xor edx, edx
call fcn.0040615c
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.0040615c
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 0x52d5c3
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x358], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x25], 0
je 0x52d677
cmp byte [ebp + 0x84], 0
jne 0x52d677
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00439040
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x52d60c
mov dword [ebp - 0xd8], 0x1fffffff
jmp 0x52d61d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xd8]
call fcn.00439048
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 - 0x344]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x38]
call fcn.00439990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.00439048
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 0x5339dc
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.0052d2bc
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x38]
call fcn.0052d2e8
mov dword [ebp - 0x4c], eax
mov edx, dword [edi]
mov eax, 0x533b80
call fcn.00406bcc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jle 0x52d736
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x533b80
call fcn.0040ac28
mov esi, eax
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.0040ac28
mov ebx, eax
test ebx, ebx
jle 0x52d714
cmp esi, ebx
jg 0x52d736
test esi, esi
jne 0x52d71c
test ebx, ebx
jg 0x52d736
cmp esi, ebx
jge 0x52d727
test esi, esi
jle 0x52d727
mov dword [ebp - 0x78], esi
test ebx, ebx
jne 0x52d730
xor eax, eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jg 0x52d6e8
cmp dword [ebp - 0x78], 0
jle 0x52d752
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.004068b4
jmp 0x52d75c
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.0040615c
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0
je 0x52d77f
mov eax, dword [ebp - 0xdc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x52d939
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x533ba0
mov dword [ebp - 0x398], eax
mov eax, 0x533b80
mov dword [ebp - 0x394], eax
mov eax, 0x533b90
mov dword [ebp - 0x390], eax
lea eax, [ebp - 0x398]
push eax
mov eax, 0x533bb0
mov dword [ebp - 0x3a4], eax
mov eax, 0x533bcc
mov dword [ebp - 0x3a0], eax
mov eax, 0x533be4
mov dword [ebp - 0x39c], eax
lea eax, [ebp - 0x3a4]
mov edx, 2
pop ecx
call fcn.0052d028
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x52d81b
mov eax, dword [ebp - 0xe0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0xd4], 0
jl 0x52d85e
cmp dword [ebp - 0x98], 0
jle 0x52d85e
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jne 0x52d85e
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x52d8a6
cmp dword [ebp - 0xa8], 0
jne 0x52d8a6
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x52d8a6
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.004253ec
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x52d8a6
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.00537534
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
jne 0x52d8e4
push edi
lea esi, [ebp - 0x358]
lea edi, [ebp - 0x368]
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 0x52d91f
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x368], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x360], eax
jmp 0x52d91f
push edi
lea esi, [ebp - 0x348]
lea edi, [ebp - 0x368]
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 0x52d91f
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x368], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x360], eax
add dword [ebp - 0x364], 0x2710
mov eax, dword [ebp - 0x364]
add eax, dword [ebp - 0x50]
dec eax
mov dword [ebp - 0x35c], eax
cmp byte [ebp + 0x88], 0
jne 0x52d960
cmp dword [ebp - 0xd4], 0
jl 0x52d958
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x52d960
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x52d977
cmp dword [ebp - 0x98], 0
jle 0x52d977
xor eax, eax
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x41], 0
jmp 0x52db15
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x52d9c4
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x52d9c4
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp + 0x88], 0
jne 0x52d9b6
cmp dword [ebp - 0x98], 0
jle 0x52d9b6
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52d9b6
cmp byte [ebp - 0xb9], 0
jne 0x52d9ba
xor eax, eax
jmp 0x52d9bc
mov al, 1
mov byte [ebp - 0x41], al
jmp 0x52db15
cmp byte [ebp + 0x80], 0
je 0x52db10
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
setne al
or al, byte [ebp + 0x84]
je 0x52db10
cmp dword [ebp - 0x98], 0
jle 0x52da73
xor eax, eax
mov dword [ebp - 0x37c], eax
lea eax, [ebp - 0x38c]
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 + 0x55856c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x30]
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
push eax
lea eax, [ebp - 0x368]
push eax
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
jne 0x52da98
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x7c], eax
jmp 0x52da98
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp - 0xb7], 0
je 0x52da98
mov eax, dword [ebp + 0x78]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp + 0x88], 0
jne 0x52da98
mov eax, dword [ebp + 0x74]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp - 0x98], 0
jle 0x52daac
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x98]
jl 0x52dab0
xor eax, eax
jmp 0x52dab2
mov al, 1
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x52db15
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x52db15
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x52db15
cmp byte [ebp + 0x80], 0
je 0x52db15
cmp byte [ebp - 0xcd], 0
jne 0x52db15
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x52db15
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 0x5339f7
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x78], 0
jle 0x52db3f
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jg 0x52db29
cmp dword [ebp - 0x7c], 0
jne 0x52db3f
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.004068b4
jmp 0x52db64
cmp dword [ebp - 0x7c], 0
jle 0x52db5a
lea eax, [ebp - 0x10]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x7c]
mov edx, 1
call fcn.004068b4
jmp 0x52db64
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.0040615c
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
je 0x52db87
mov eax, dword [ebp - 0xe4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x52dbfc
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x533ba0
mov dword [ebp - 0x398], eax
mov eax, 0x533b80
mov dword [ebp - 0x394], eax
mov eax, 0x533b90
mov dword [ebp - 0x390], eax
lea eax, [ebp - 0x398]
push eax
mov eax, 0x533bb0
mov dword [ebp - 0x3a4], eax
mov eax, 0x533bcc
mov dword [ebp - 0x3a0], eax
mov eax, 0x533be4
mov dword [ebp - 0x39c], eax
lea eax, [ebp - 0x3a4]
mov edx, 2
pop ecx
call fcn.0052d028
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0
je 0x52dc1f
mov eax, dword [ebp - 0xe8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x52dc39
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov eax, dword [ebp - 0x10]
mov edx, 0x533bfc
call fcn.004068ac
jne 0x52dc73
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.0040615c
mov eax, edi
mov ecx, 1
mov edx, 1
call fcn.00406984
xor eax, eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x52dd7d
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x52dd7d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x52dd7d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x52dcc3
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52dcc3
cmp byte [ebp - 0xb9], 0
jne 0x52dd4c
cmp dword [ebp - 0xa8], 0
je 0x52dcd8
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
jne 0x52dd4c
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406984
lea eax, [ebp - 0x14]
mov edx, 0x533bfc
call fcn.0040651c
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0xa8], 0
je 0x52dd12
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 0x52dd4c
movzx eax, byte [ebp - 0xb9]
xor al, 1
and al, byte [ebp - 0xcd]
je 0x52dd4c
cmp dword [ebp - 0xd4], 0
jl 0x52dd4c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x52dd4c
mov byte [ebp - 0x41], 1
cmp byte [ebp - 0x41], 0
je 0x52dd7d
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 0x5339f7
cmp dword [ebp - 0x98], 0
jle 0x52f51b
mov byte [ebp - 0xb7], 0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x31], 0
je 0x52ddb7
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x52ddb7
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 - 0x32], 0
je 0x52dddd
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x52dddd
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 0x52ddfa
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 0x52de17
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x52de3a
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov edx, dword [edx]
call fcn.0040615c
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
call fcn.0040651c
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.0040615c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x10]
call fcn.0040651c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
lea eax, [ebp - 8]
xor edx, edx
call fcn.0040615c
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x33], 0
je 0x52de8f
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406984
mov byte [ebp - 0xa9], 1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x33], 0
jne 0x52f51b
cmp byte [ebp + 0x84], 0
jne 0x52e657
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x32], 0
je 0x52deca
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
sub dword [ebp - 0x34c], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x31], 0
je 0x52dee1
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
add dword [ebp - 0x34c], eax
mov eax, dword [ebp + 0x60]
mov eax, dword [eax]
sub dword [ebp - 0x34c], eax
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x34c]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x34c], edx
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x358]
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 - 0x358]
lea edi, [ebp - 0x368]
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 - 0x350]
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 + 0x55856c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x30]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
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 0x52dff1
mov byte [ebp - 0xb6], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
cmp eax, dword [ebp - 0x350]
jg 0x52dfe0
mov byte [ebp - 0xba], 0
jmp 0x52dff1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x34], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x358]
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.0040615c
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
or eax, 0x400
push eax
lea eax, [ebp - 0x358]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
cmp byte [ebp - 0xb6], 0
je 0x52e078
cmp byte [ebp + 0x80], 0
jne 0x52e078
mov eax, dword [ebp - 0x350]
cmp eax, dword [ebp - 0x360]
jle 0x52e078
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x34], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp - 0x350]
sub eax, dword [ebp - 0x358]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
cmp eax, dword [ebp - 0x340]
jge 0x52e4e2
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x52e1e6
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.00408d50
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.004388d4
cmp byte [ebp - 0xba], 0
jne 0x52e10d
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0xc], 0
sete al
and al, byte [ebp - 0xb5]
je 0x52e174
cmp dword [ebp - 0xd4], 0
jl 0x52e174
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x52e174
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0xfffffdff
and eax, 0xfffffeff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
jmp 0x52e1c0
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x368]
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.004388d4
cmp dword [ebp - 0xd4], 0
jl 0x52e494
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x52e494
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 8]
jle 0x52e22d
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 0x52e31c
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
movzx edx, byte [ebp - 0xb5]
xor dl, 1
and edx, 0x7f
or eax, dword [edx*4 + 0x558564]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
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 0x52e2b9
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x34], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xec]
jge 0x52e2ed
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xf0], eax
jmp 0x52e2f9
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x350], eax
jmp 0x52e50f
lea eax, [ebp - 0xc]
mov edx, 0x533c0c
call fcn.0040651c
mov eax, dword [ebp - 0xc]
call fcn.00406194
mov dword [ebp - 0x40], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
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.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x10]
call fcn.00406194
mov edx, dword [ebp - 0x40]
call fcn.0040e220
test eax, eax
je 0x52e50f
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x34], 1
mov byte [ebp - 0xb5], 1
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004062b4
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
je 0x52e3d7
mov eax, dword [ebp - 0xf4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf4]
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 - 0x30]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xf8]
jge 0x52e468
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xfc], eax
jmp 0x52e474
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x350], eax
jmp 0x52e50f
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
jmp 0x52e50f
cmp dword [ebp - 0xd4], 0
jl 0x52e50f
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x52e50f
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
mov dword [ebp - 0x350], 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 0x52e558
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x52e558
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 0x52e558
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x3c]
call fcn.00406108
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x3d], 0
je 0x52e5f6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 0xff
call fcn.00439048
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.00439188
mov eax, dword [ebp - 0x358]
sar eax, 1
jns 0x52e595
adc eax, 0
mov ebx, eax
add ebx, ebx
mov eax, ebx
and eax, 0x80000003
jns 0x52e5a7
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x52e5b2
mov esi, 2
jmp 0x52e5b4
xor esi, esi
mov ecx, dword [ebp - 0x33c]
add ecx, esi
dec ecx
mov edx, ebx
mov eax, dword [ebp - 0x38]
call fcn.00439928
jmp 0x52e5ee
cmp esi, 2
jne 0x52e5d2
xor esi, esi
jmp 0x52e5d7
mov esi, 2
mov ecx, dword [ebp - 0x33c]
add ecx, esi
dec ecx
lea edx, [ebx + 2]
mov eax, dword [ebp - 0x38]
call fcn.004398c8
add ebx, 2
cmp ebx, dword [ebp - 0x350]
jl 0x52e5c9
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
and eax, 0x20000
cmp eax, 0x20000
je 0x52e625
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x350], eax
jmp 0x52e63a
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x350]
add eax, dword [ebp - 0x358]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x344]
mov dword [ebp - 0x354], eax
jmp 0x52f34b
cmp byte [ebp + 0x88], 0
jne 0x52e6ff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x52e67e
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x52e6ff
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle 0x52e6ff
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
jne 0x52e6ff
cmp dword [ebp - 0xa8], 0
je 0x52e6c5
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52e6c5
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x52e6c5
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 0x533b0d
lea eax, [ebp - 8]
mov edx, 0x533c2c
call fcn.0040615c
cmp byte [ebp - 0xba], 1
je 0x52e6ed
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.0040651c
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 - 0x348]
lea edi, [ebp - 0x358]
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 - 0x358]
cmp eax, dword [ebp - 0x350]
jle 0x52e72b
mov eax, dword [ebp - 0x358]
mov dword [ebp - 0x350], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
or eax, 0x400
push eax
lea eax, [ebp - 0x358]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
xor eax, eax
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x52e7b9
cmp dword [ebp - 0x10], 0
je 0x52e7b9
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
je 0x52e798
mov eax, dword [ebp - 0x100]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x100]
cmp word [eax + edx*2 - 2], 0x20
jne 0x52e7b9
mov edx, 0x533ba0
mov eax, dword [ebp - 0x38]
call fcn.00439bf4
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x52e998
mov eax, dword [ebp - 0x350]
sub eax, dword [ebp - 0x358]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x360]
sub edx, dword [ebp - 0x368]
cmp eax, edx
jle 0x52e998
cmp byte [ebp - 0xba], 0
jne 0x52e81b
mov eax, dword [ebp - 0x360]
sub eax, dword [ebp - 0x368]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x350], eax
jmp 0x52e998
lea eax, [ebp - 0xc]
mov ecx, 0x533c0c
mov edx, dword [ebp - 0x10]
call fcn.004065dc
mov eax, dword [ebp - 0xc]
call fcn.00406194
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x368]
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 - 0x30]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x558574]
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.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x10]
call fcn.00406194
mov edx, dword [ebp - 0x40]
call fcn.0040e220
test eax, eax
je 0x52e998
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004062b4
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
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x52e903
mov eax, dword [ebp - 0x104]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x104], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x104]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x108]
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x10c]
jge 0x52e96e
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x110], eax
jmp 0x52e97a
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x358]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x354]
jl 0x52ea2d
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x34c]
jge 0x52ea2d
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x38]
jge 0x52ea2d
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.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetTextExtentExPointW
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
cmp eax, dword [ebp - 0x98]
jne 0x52ea1b
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x98]
add dword [eax - 0x44], edx
jmp 0x52ea2d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
mov edx, dword [ebp + 0x94]
add dword [edx - 0x44], eax
mov eax, dword [ebp - 0x350]
sub eax, dword [ebp - 0x358]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jge 0x52ea50
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 - 0x30]
and eax, 0x20000
cmp eax, 0x20000
jne 0x52ea84
mov eax, dword [ebp - 0x340]
sub eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x358]
mov dword [ebp - 0x5c], eax
jmp 0x52ea90
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x358]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x24]
movzx eax, byte [eax]
and al, byte [ebp + 0x88]
je 0x52ec2b
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x34c]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x34c], edx
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x354], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x350]
sub eax, dword [ebp - 0xa0]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
mov edx, dword [ebp + 0x30]
cmp eax, dword [edx + 8]
jne 0x52eb0e
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x358]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x350]
mov dword [eax + 8], edx
jmp 0x52eb40
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x358]
jle 0x52eb26
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x358]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
cmp eax, dword [ebp - 0x350]
jge 0x52eb40
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x350]
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 0x52eb68
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x354]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x34c]
mov dword [eax + 0xc], edx
jmp 0x52eb9c
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x354]
jle 0x52eb82
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x354]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x34c]
jge 0x52eb9c
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x34c]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x358]
jl 0x52ec02
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x350]
jg 0x52ec02
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x354]
jl 0x52ec02
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x34c]
jge 0x52ec02
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 - 0x3c]
call fcn.00406108
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x24]
call fcn.00406108
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x52ec2b
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 0x52ec76
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x340]
jle 0x52ec76
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
je 0x52ec76
cmp dword [ebp - 8], 0
je 0x52ec72
cmp dword [ebp - 0xa8], 0
je 0x52ec76
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52ec76
xor eax, eax
jmp 0x52ec78
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 0x52ed2e
cmp byte [ebp - 0xa9], 0
je 0x52ecd2
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x340]
jg 0x52ecbc
cmp dword [ebp - 8], 0
je 0x52ed2e
cmp byte [ebp - 0xcd], 0
jne 0x52ecd2
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jge 0x52ed2e
cmp dword [ebp - 0xa8], 0
je 0x52ed2e
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 1
cmp byte [ebp + 0x80], 0
je 0x52ecfd
cmp byte [ebp - 0x41], 0
jne 0x52ed2e
cmp dword [ebp - 0xd4], 0
jl 0x52ed2e
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52ed2e
mov eax, dword [ebp - 0x370]
sub eax, dword [ebp - 0x378]
cmp eax, dword [ebp - 0xa0]
jl 0x52ed27
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 0x52ed5c
cmp dword [ebp - 0xd4], 0
jl 0x52ed5c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jg 0x52ed5c
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0xcd], 0
je 0x52ed7a
cmp byte [ebp - 0xa9], 0
jne 0x52ed7a
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jg 0x52ee6c
cmp byte [ebp - 0xcf], 0
jne 0x52edba
cmp byte [ebp - 0xcd], 0
jne 0x52edba
cmp byte [ebp - 0xa9], 0
jne 0x52edba
cmp byte [ebp + 0x80], 0
jne 0x52edba
cmp byte [ebp - 0xb8], 0
jne 0x52edba
cmp byte [ebp - 0x41], 0
jne 0x52edba
cmp byte [ebp - 0xba], 0
jne 0x52ee6c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
cmp eax, dword [edx]
jge 0x52ee14
cmp byte [ebp - 0xcf], 0
jne 0x52ee14
cmp byte [ebp - 0xcd], 0
jne 0x52ede4
mov eax, dword [ebp + 0x48]
mov eax, dword [eax]
mov edx, dword [ebp + 0x4c]
cmp eax, dword [edx]
jne 0x52ee14
cmp byte [ebp - 0xa9], 0
je 0x52ee14
cmp dword [ebp - 8], 0
je 0x52ee14
cmp byte [ebp + 0x80], 0
jne 0x52ee14
cmp byte [ebp - 0xb8], 0
jne 0x52ee14
cmp byte [ebp - 0x41], 0
jne 0x52ee14
cmp byte [ebp - 0xba], 0
jne 0x52ee6c
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 0x52efe1
cmp byte [ebp - 0x41], 0
jne 0x52efe1
cmp byte [ebp - 0xba], 0
je 0x52efe1
cmp byte [ebp - 0xa9], 0
je 0x52efe1
cmp byte [ebp - 0xaa], 0
jne 0x52efe1
cmp dword [ebp - 8], 0
jne 0x52efe1
lea eax, [ebp - 0x3a8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004068b4
lea eax, [ebp - 0x3a8]
mov edx, 0x533c2c
call fcn.0040651c
mov edx, dword [ebp - 0x3a8]
mov eax, dword [ebp - 0x38]
call fcn.00439bf4
mov ebx, eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
sub eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
add ebx, eax
cmp ebx, dword [ebp - 0x340]
jle 0x52efd8
cmp byte [ebp - 0xb9], 0
je 0x52eed8
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jg 0x52eedc
xor eax, eax
jmp 0x52eede
mov al, 1
mov byte [ebp - 0x41], al
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x34], 1
cmp byte [ebp - 0xcd], 0
je 0x52ef1a
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x52ef1a
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x52ef1a
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 0x533b0d
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x52ef57
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je 0x52ef57
cmp byte [ebp - 0xcd], 0
jne 0x52ef57
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x52ef57
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 0x533b0d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x52efad
cmp byte [ebp - 0xcf], 0
jne 0x52efad
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52ef8f
cmp byte [ebp + 0x80], 0
je 0x52ef8f
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jne 0x52efad
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x52efad
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 0x533b0d
cmp byte [ebp - 0xcf], 0
jne 0x52eff6
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52efc7
cmp byte [ebp + 0x80], 0
jne 0x52eff6
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jne 0x52eff6
mov byte [ebp - 0xa9], 1
jmp 0x52eff6
mov byte [ebp - 0xa9], 1
jmp 0x52eff6
movzx eax, byte [ebp + 0x80]
xor al, 1
or al, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x52f1f9
cmp byte [ebp + 0x80], 0
je 0x52f1f9
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 + 0x55856c]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x30]
and edx, 0xfffffdff
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
or eax, 0x400
push eax
lea eax, [ebp - 0x368]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x35c]
sub eax, dword [ebp - 0x364]
cmp eax, dword [ebp - 0x50]
setle byte [ebp - 0xa9]
cmp byte [ebp - 0xa9], 0
je 0x52f0c3
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x368]
jle 0x52f0af
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x360]
jge 0x52f0bb
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
je 0x52f0bb
xor eax, eax
jmp 0x52f0bd
mov al, 1
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x52f26c
cmp byte [ebp - 0xba], 0
je 0x52f26c
mov eax, dword [ebp - 0x344]
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 0x52f26c
lea eax, [ebp - 0x3ac]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004068b4
lea eax, [ebp - 0x3ac]
mov edx, 0x533c2c
call fcn.0040651c
mov edx, dword [ebp - 0x3ac]
mov eax, dword [ebp - 0x38]
call fcn.00439bf4
mov edx, dword [ebp + 0x7c]
mov edx, dword [edx]
sub edx, dword [ebp - 0xa0]
add edx, dword [ebp - 0x348]
add edx, dword [ebp + 0x10]
add eax, edx
cmp eax, dword [ebp - 0x340]
jle 0x52f17d
cmp dword [ebp - 0xa8], 0
je 0x52f26c
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52f26c
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0x41], 0
jne 0x52f26c
cmp byte [ebp - 0xaa], 0
jne 0x52f26c
cmp dword [ebp - 0xa8], 0
je 0x52f26c
cmp dword [ebp - 0xd4], 0
jge 0x52f26c
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52f26c
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 0x533b0d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x533b0d
cmp byte [ebp + 0x88], 0
jne 0x52f26c
cmp byte [ebp + 0x80], 0
je 0x52f211
cmp byte [ebp - 0x41], 0
jne 0x52f26c
cmp byte [ebp - 0xaa], 0
jne 0x52f26c
cmp dword [ebp - 0xa8], 0
je 0x52f26c
cmp dword [ebp - 0xd4], 0
jge 0x52f26c
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x52f26c
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 0x533b0d
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x533b0d
movzx eax, byte [ebp - 0xa9]
and al, byte [ebp + 0x80]
je 0x52f2da
cmp byte [ebp - 0x41], 0
jne 0x52f2da
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x340]
jl 0x52f2da
mov eax, dword [edi]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
je 0x52f2c5
mov eax, dword [ebp - 0x118]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x118]
setl byte [ebp - 0x119]
jmp 0x52f2e1
mov byte [ebp - 0x119], 0
cmp byte [ebp - 0x119], 0
je 0x52f300
mov eax, dword [edi]
mov edx, dword [ebp - 0x98]
cmp word [eax + edx*2], 0x3c
sete byte [ebp - 0x11a]
jmp 0x52f307
mov byte [ebp - 0x11a], 0
cmp byte [ebp - 0x11a], 0
jne 0x52f33e
cmp byte [ebp + 0x80], 0
je 0x52f33e
cmp byte [ebp - 0x41], 0
jne 0x52f339
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x340]
jge 0x52f339
xor eax, eax
jmp 0x52f33b
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.0040651c
cmp byte [ebp + 0x80], 0
je 0x52f3dc
cmp byte [ebp - 0x41], 0
jne 0x52f36e
cmp byte [ebp + 0x84], 0
jne 0x52f3dc
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
jl 0x52f3dc
mov byte [ebp - 0xce], 0
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x52f3a5
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x52f3a5
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x52f3a5
cmp byte [ebp - 0xa9], 0
jne 0x52f3a5
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 0x52f40a
cmp byte [ebp - 0xce], 0
jne 0x52f40a
mov byte [ebp - 0x41], 0
mov byte [ebp - 0xa9], 1
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
jmp 0x52f40a
cmp byte [ebp - 0xb8], 0
je 0x52f40a
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x52f3f2
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 0x52f426
cmp byte [ebp + 0x80], 0
jne 0x52f4a0
cmp byte [ebp - 0x41], 0
jne 0x52f4a0
lea eax, [ebp - 0x3b0]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.004068b4
mov edx, dword [ebp - 0x3b0]
lea eax, [ebp - 0x14]
call fcn.0040651c
cmp byte [ebp - 0xba], 1
je 0x52f461
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.0040651c
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406984
cmp byte [ebp - 0x41], 0
je 0x52f484
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 0x52f51b
mov eax, dword [ebp + 0x4c]
dec dword [eax]
cmp dword [ebp - 0xa8], 0
je 0x52f4b8
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 0x52f4f0
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
call fcn.00406108
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 4]
call fcn.00406108
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, 0x533b80
call fcn.00406bcc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 1
jne 0x52f570
mov eax, dword [edi]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x52f55e
mov eax, dword [ebp - 0x124]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 2
jg 0x52f570
mov eax, edi
xor edx, edx
call fcn.00406108
cmp byte [ebp - 0x41], 0
jne 0x5339dc
cmp dword [ebp - 0x78], 1
jne 0x5339dc
mov eax, dword [edi]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x52f5b2
mov eax, dword [ebp - 0x12c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 2
jle 0x5339dc
mov eax, dword [edi]
cmp word [eax + 2], 0x2f
jne 0x52f606
mov eax, dword [edi]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
je 0x52f5f6
mov eax, dword [ebp - 0x134]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 3
setg byte [ebp - 0x135]
jmp 0x52f60d
mov byte [ebp - 0x135], 0
cmp byte [ebp - 0x135], 0
je 0x52fdc1
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x138], ax
movzx eax, word [ebp - 0x138]
mov word [ebp - 0x13a], ax
movzx eax, word [ebp - 0x138]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x52f657
movzx eax, word [ebp - 0x138]
and ax, 0xffdf
mov word [ebp - 0x13a], ax
movzx eax, word [ebp - 0x13a]
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x52fe11.67
jmp dword [eax*4 + 0x52f671]
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne 0x52f747
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x48], 0x1fffffff
jne 0x52f70c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x52f747
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x48]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0x1fffffff
jne 0x52f736
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x52f747
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x140]
call fcn.00439400
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.00406108
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x52f77c
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x52f799
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 0x52f799
cmp byte [ebp + 0x84], 0
jne 0x52f799
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x4c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
cmp byte [ebp + 0x84], 0
jne 0x52f7c5
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x52f7c5
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
cmp byte [ebp + 0x88], 0
je 0x52f878
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x52f853
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x33c]
mov dword [eax - 0x54], edx
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x348]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x58], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x5c]
cmp eax, dword [ebp - 0x344]
je 0x52f82c
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x348]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x344]
mov dword [eax - 0x5c], 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 - 0x3c0]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00408c54
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x3c0]
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 0x52f8d7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.004253ec
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x52f8d7
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.00537534
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 0x52f8d7
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x52f94f
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 0x52f94f
cmp byte [ebp + 0x84], 0
jne 0x52f94f
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x358]
mov dword [eax - 0x68], edx
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x34c]
sub edx, dword [eax]
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x64], edx
mov eax, dword [ebp - 0x38]
call fcn.0052d2bc
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x64]
sub edx, eax
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x70]
mov eax, dword [ebp - 0x38]
call fcn.00439808
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x74]
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.0x52fe11.67
mov byte [ebp - 0xb8], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
jmp case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x3d], 0
jmp case.0x52fe11.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x52f9e5
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
movzx edx, byte [0x533c34]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 6]
mov word [ebp - 0x142], ax
movzx eax, word [ebp - 0x142]
mov word [ebp - 0x144], ax
movzx eax, word [ebp - 0x142]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x52fa48
movzx eax, word [ebp - 0x142]
and ax, 0xffdf
mov word [ebp - 0x144], ax
movzx eax, word [ebp - 0x144]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x54
jne 0x52fa86
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
movzx edx, byte [0x533c38]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x55
jne 0x52faa9
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x32], 0
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x31], 0
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x50
jne 0x52fb00
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x78]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0x1fffffff
jne 0x52fadd
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x52faee
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x148]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x48
jne 0x52fb19
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 0
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
movzx edx, byte [0x533c38]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
lea edx, [ebp - 0x3c4]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
call fcn.00438b98
mov edx, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438bec
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
call fcn.00438b58
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438b60
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x78]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0x1fffffff
jne 0x52fbe0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x14c]
call fcn.00439400
jmp case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x7c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x80]
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x150], 0x1fffffff
jne 0x52fc44
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x150]
call fcn.00439400
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
movzx edx, byte [0x533c3c]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
mov byte [ebp - 0x41], 1
jmp case.0x52fe11.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x52fcb1
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x52fcb1
mov eax, dword [ebp + 0x50]
dec dword [eax]
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x81], 0
jmp case.0x52fe11.67
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.0x52fe11.67
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax - 0x82]
mov edx, dword [ebp + 0x40]
mov byte [edx], al
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x25], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x533c4c
call fcn.0040651c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x88]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0x1fffffff
jne 0x52fd46
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x154]
call fcn.00439400
jmp case.0x52fe11.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x52fd77
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x52fd77
mov eax, dword [ebp + 0x50]
dec dword [eax]
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
movzx edx, byte [0x533c54]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
mov eax, dword [ebp + 0x94]
push eax
mov eax, dword [ebp - 0x38]
call fcn.0052d3a0
pop ecx
jmp case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x33], 0
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 2]
mov word [ebp - 0x156], ax
movzx eax, word [ebp - 0x156]
mov word [ebp - 0x158], ax
movzx eax, word [ebp - 0x156]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x52fdfe
movzx eax, word [ebp - 0x156]
and ax, 0xffdf
mov word [ebp - 0x158], ax
movzx eax, word [ebp - 0x158]
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x52fe11.67
jmp dword [eax*4 + 0x52fe18]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x74]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x52fed7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x52fed7
cmp byte [ebp + 0x84], 0
jne 0x52fed7
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x358]
mov dword [eax - 0x70], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x354]
mov dword [eax - 0x6c], edx
cmp byte [ebp + 0x84], 0
jne 0x52ff1b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x52fefb
mov dword [ebp - 0x15c], 0x1fffffff
jmp 0x52ff0c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x15c]
mov dword [eax - 0x48], edx
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x52ff4b
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x52ffe0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x52ffe0
cmp byte [ebp + 0x84], 0
jne 0x52ffe0
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x44], 0x1fffffff
je 0x52ffab
cmp byte [ebp + 0x84], 0
jne 0x52ffab
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0x1fffffff
jne 0x52ff9a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x52ffab
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x160]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x4c], eax
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x40], 0x1fffffff
je 0x52ffe0
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.00406108
mov eax, dword [ebp + 0x2c]
mov byte [eax], 1
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
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 0x5301ee
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.004253ec
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jle 0x5301ee
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x2c]
call fcn.00537534
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
je 0x530107
cmp byte [ebp + 0x88], 0
jne 0x530148
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov edx, dword [edi]
mov ecx, dword [ebp - 0x70]
mov eax, 0x533c64
call fcn.0040ac28
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x5300c3
mov eax, dword [edi]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
je 0x5300b9
mov eax, dword [ebp - 0x168]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x168]
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.004068b4
lea edx, [ebp - 0x3c8]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x40]
call fcn.0052d158
mov edx, dword [ebp - 0x3c8]
mov eax, dword [ebp - 0xa8]
add eax, 0x40
call fcn.00406108
jmp 0x530148
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
je 0x530148
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
jne 0x530134
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x530148
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439400
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 0x530195
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x530181
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x530195
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 0x5301df
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 0x5301ee
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.004068b4
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533c7c
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
jle 0x530298
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0
je 0x530254
mov eax, dword [ebp - 0x170]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x170], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x3cc]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x3cc]
lea eax, [ebp - 0x28]
call fcn.0040615c
or edx, 0xffffffff
mov eax, dword [ebp - 0x28]
call fcn.0040d408
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533c98
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
jle 0x53032d
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.0040615c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
je 0x5302e8
mov eax, dword [ebp - 0x178]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x3d0]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x3d0]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov eax, dword [ebp + 0x94]
add eax, 0xffffffc4
mov edx, dword [ebp - 0x28]
call fcn.0040615c
mov edx, dword [ebp - 0x20]
mov eax, 0x533cb0
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
jle 0x5303c4
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.0040615c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
je 0x53037d
mov eax, dword [ebp - 0x180]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x180]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x3d4]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x3d4]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov eax, dword [ebp + 0x94]
add eax, 0xffffffdc
mov edx, dword [ebp - 0x28]
call fcn.0040615c
jmp 0x5303d4
mov eax, dword [ebp + 0x94]
add eax, 0xffffffdc
xor edx, edx
call fcn.0040615c
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
cmp dword [ebp - 0xa8], 0
je 0x530406
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x530406
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x30]
sub eax, 2
jb 0x530406
mov eax, dword [ebp + 0x5c]
mov dword [eax], 1
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 1
jb 0x530414
je 0x53041d
jmp 0x530433
mov byte [ebp + 0x80], 0
jmp 0x530433
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jne 0x530433
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
cmp byte [ebp + 0x88], 0
je 0x53048d
mov eax, dword [ebp - 0x344]
push eax
lea eax, [ebp - 0x3c0]
push eax
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x344]
call fcn.00408c54
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x3c0]
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 - 0x60], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x344]
mov dword [eax - 0x5c], edx
mov eax, dword [ebp + 0x58]
inc dword [eax]
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x182], ax
movzx eax, word [ebp - 0x182]
mov word [ebp - 0x184], ax
movzx eax, word [ebp - 0x182]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x5304d4
movzx eax, word [ebp - 0x182]
and ax, 0xffdf
mov word [ebp - 0x184], ax
movzx eax, word [ebp - 0x184]
mov word [ebp - 0xa2], ax
movzx eax, word [ebp - 0xa2]
sub ax, 0x3e
je 0x53050e
sub ax, 0xe
je 0x5306a9
sub ax, 3
je 0x5306d5
sub ax, 3
je 0x530531
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
mov edx, eax
or dl, byte [0x533c34]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x533c4c
call fcn.0040651c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov eax, dword [edi]
mov dword [ebp - 0x188], eax
mov edx, dword [ebp - 0x188]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x18c], 0
jle 0x530631
lea eax, [ebp - 0x3d8]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 4
mov eax, dword [edi]
mov edx, 4
call fcn.004068b4
mov eax, dword [ebp - 0x3d8]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533cc8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0
jle 0x530631
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0
je 0x5305ee
mov eax, dword [ebp - 0x194]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x194], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x194]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x3dc]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x3dc]
lea eax, [ebp - 0x28]
call fcn.0040615c
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040d408
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
cmp dword [ebp - 0x9c], 0
sete al
and al, byte [ebp - 0xb7]
je case.0x52fe11.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.0x52fe11.67
cmp byte [ebp + 0x88], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je case.0x52fe11.67
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle case.0x52fe11.67
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
je 0x52e6c5
jmp case.0x52fe11.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x5c], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x8c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
jmp case.0x52fe11.67
lea eax, [ebp - 0x3e0]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
mov eax, dword [edi]
mov edx, 1
call fcn.004068b4
mov edx, dword [ebp - 0x3e0]
lea eax, [ebp - 0x14]
call fcn.0040651c
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je case.0x52fe11.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x52fe11.67
lea eax, [ebp - 0x3e4]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 6
call fcn.004068b4
mov eax, dword [ebp - 0x3e4]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533ce8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x198], eax
cmp dword [ebp - 0x198], 0
jle 0x530b62
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0
je 0x53079e
mov eax, dword [ebp - 0x19c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x19c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x3e8]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x3e8]
lea eax, [ebp - 0x28]
call fcn.0040615c
lea edx, [ebp - 0x3ec]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x3ec]
mov eax, 0x533d0c
call fcn.00406bcc
test eax, eax
jle 0x530806
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x3f0]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x3f0]
mov eax, 0x533d24
call fcn.00406bcc
test eax, eax
jle 0x530900
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
lea edx, [ebp - 0x3fc]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x3fc]
mov eax, 0x533d3c
call fcn.00406bcc
test eax, eax
jle 0x5309fa
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x530b62
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x530b62
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x530b62
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x530b62
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 sub.gdi32.dll_CreateRectRgn
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x530b19
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x530aec
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.0043975c
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 0x530ab2
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 0x530aab
push 0
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x533d54
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jle 0x530fb9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
je 0x530bab
mov eax, dword [ebp - 0x1a4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1a4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0
je 0x530be6
mov eax, dword [ebp - 0x1a8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1a8], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x400]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x400]
mov eax, 0x533d0c
call fcn.00406bcc
test eax, eax
jle 0x530c5d
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x404]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x404]
mov eax, 0x533d24
call fcn.00406bcc
test eax, eax
jle 0x530d57
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
lea edx, [ebp - 0x408]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x408]
mov eax, 0x533d3c
call fcn.00406bcc
test eax, eax
jle 0x530e51
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x530fb9
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x530fb9
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x530fb9
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x530fb9
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 sub.gdi32.dll_CreateRectRgn
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x530f70
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x530f43
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.0043975c
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 0x530f09
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 0x530f02
push 0
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x533d84
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x1ac], 0
jle 0x53128c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0
je 0x531002
mov eax, dword [ebp - 0x1b0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
je 0x53103d
mov eax, dword [ebp - 0x1b4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x40c]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x40c]
mov eax, 0x533d0c
call fcn.00406bcc
test eax, eax
jle 0x5310b4
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x410]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x410]
mov eax, 0x533d24
call fcn.00406bcc
test eax, eax
jle 0x5310e8
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x414]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x414]
mov eax, 0x533d3c
call fcn.00406bcc
test eax, eax
jle 0x53111c
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x53128c
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x53128c
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x53128c
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x53128c
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 sub.gdi32.dll_CreateRectRgn
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x531243
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x531216
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.0043975c
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 0x5311d4
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 0x5311cd
push 0
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x533da8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0
jle case.0x52fe11.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0
je 0x5312d5
mov eax, dword [ebp - 0x1bc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1bc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533dc4
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
jle 0x5314e4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
je 0x531349
mov eax, dword [ebp - 0x1c4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1c4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x28]
mov edx, 0x533de4
call fcn.0040615c
mov edx, dword [ebp - 0x20]
mov eax, 0x533df4
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jle 0x531448
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1cc], eax
cmp dword [ebp - 0x1cc], 0
je 0x5313ca
mov eax, dword [ebp - 0x1cc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1cc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 3
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
je 0x531405
mov eax, dword [ebp - 0x1d0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1d0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
push 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
lea eax, [ebp - 0x3c0]
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.00408c54
lea eax, [ebp - 0x3c0]
push eax
mov eax, dword [ebp - 0x28]
mov edx, 0x533de4
call fcn.004068ac
sete al
push eax
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.0052ca10
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x5314ff
mov dword [ebp - 0x1d4], 0x1fffffff
jmp 0x531510
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1d4]
mov dword [eax - 0x78], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x53153a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x53154b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00439040
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
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.00439990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.00439048
jmp case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x3d], 1
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x1d6], ax
movzx eax, word [ebp - 0x1d6]
mov word [ebp - 0x1d8], ax
movzx eax, word [ebp - 0x1d6]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x531624
movzx eax, word [ebp - 0x1d6]
and ax, 0xffdf
mov word [ebp - 0x1d8], ax
movzx eax, word [ebp - 0x1d8]
sub ax, 0x49
je 0x531767
sub ax, 9
jne case.0x52fe11.67
mov byte [ebp - 0x41], 1
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 4
call fcn.004068b4
xor eax, eax
mov dword [ebp - 0x88], eax
lea edx, [ebp - 0x418]
mov eax, dword [ebp - 0x20]
call fcn.0040c4a0
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1dc]
mov eax, 0x533e08
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1e0], eax
cmp dword [ebp - 0x1e0], 0
jle 0x531705
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1e4], eax
cmp dword [ebp - 0x1e4], 0
je 0x5316d9
mov eax, dword [ebp - 0x1e4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1e4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00439040
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
mov ecx, dword [ebp - 0x34c]
inc ecx
mov edx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x38]
call fcn.00439928
mov ecx, dword [ebp - 0x34c]
inc ecx
mov edx, dword [ebp - 0x340]
mov eax, dword [ebp - 0x38]
call fcn.004398c8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.00439048
jmp case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x7c], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x5317a1
mov dword [ebp - 0x1e8], 0x1fffffff
jmp 0x5317b2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e8]
mov dword [eax - 0x80], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, 0xff00000d
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xff00000e
call fcn.004388d4
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x1ea], ax
movzx eax, word [ebp - 0x1ea]
mov word [ebp - 0x1ec], ax
movzx eax, word [ebp - 0x1ea]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x531823
movzx eax, word [ebp - 0x1ea]
and ax, 0xffdf
mov word [ebp - 0x1ec], ax
movzx eax, word [ebp - 0x1ec]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x53185e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
mov edx, eax
or dl, byte [0x533c3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x4e
jne 0x531982
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x1f0], 0
je 0x5318ae
mov eax, dword [ebp - 0x1f0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1f0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533e20
call fcn.0052cc18
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0x1f4], 0
je 0x5318f5
mov eax, dword [ebp - 0x1f4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1f4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004036f4
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x5c], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x58]
jge case.0x52fe11.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 - 0x358], eax
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x4d
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
inc dword [eax - 0x9c]
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1f8], eax
cmp dword [ebp - 0x1f8], 0
je 0x5319de
mov eax, dword [ebp - 0x1f8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1f8], eax
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x41c]
mov eax, dword [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x41c]
mov eax, 0x533e30
call fcn.00406bcc
mov edx, eax
add edx, 4
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1fc], eax
cmp dword [ebp - 0x1fc], 0
je 0x531a36
mov eax, dword [ebp - 0x1fc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1fc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x420]
mov eax, dword [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x420]
lea eax, [ebp - 0x20]
call fcn.0040615c
mov edx, dword [ebp - 0x20]
mov eax, 0x533e44
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x200], eax
cmp dword [ebp - 0x200], 0
jle 0x531b7a
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa0]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0x9c]
jne 0x531b7a
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x204], eax
cmp dword [ebp - 0x204], 0
je 0x531afc
mov eax, dword [ebp - 0x204]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
je 0x531b37
mov eax, dword [ebp - 0x208]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x208], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x2c]
call fcn.004068b4
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.004068b4
xor eax, eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533e58
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 0
jle 0x531c14
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
je 0x531bcf
mov eax, dword [ebp - 0x210]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x424]
mov eax, dword [ebp - 0x2c]
call fcn.0052ce6c
mov edx, dword [ebp - 0x424]
lea eax, [ebp - 0x2c]
call fcn.0040615c
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.004036f4
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533e70
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
jle 0x531c9e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0
je 0x531c59
mov eax, dword [ebp - 0x218]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x428]
mov eax, dword [ebp - 0x2c]
call fcn.0052ce6c
mov edx, dword [ebp - 0x428]
lea eax, [ebp - 0x2c]
call fcn.0040615c
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.004036f4
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x94], edx
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x90], edx
lea edx, [ebp - 0x42c]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x42c]
mov eax, 0x533d0c
call fcn.00406bcc
test eax, eax
jle 0x531cee
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x430]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x430]
mov eax, 0x533d24
call fcn.00406bcc
test eax, eax
jle 0x531de8
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
lea edx, [ebp - 0x434]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x434]
mov eax, 0x533d3c
call fcn.00406bcc
test eax, eax
jle 0x531ee2
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406984
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 - 0x3f8]
push eax
mov ecx, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0052c7dc
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3f8]
mov dword [eax - 0x94], edx
mov edx, dword [ebp - 0x3f4]
mov dword [eax - 0x90], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x94], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x90], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x348]
mov edx, dword [ebp + 0x7c]
cmp eax, dword [edx]
jle 0x531f9a
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
add eax, dword [edx - 0x94]
mov edx, dword [ebp + 0x38]
sub edx, dword [ebp - 0x348]
cmp eax, edx
jle 0x531f9a
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x354]
jl 0x531f9a
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
add eax, dword [ebp - 0x354]
cmp eax, dword [ebp + 0x34]
jle 0x531f9a
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x531f9a
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 - 0x3c]
call fcn.00406108
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x24], 0
je 0x531f82
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x24]
call fcn.00406108
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xa0], 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 - 0x94]
mov edx, dword [ebp - 0x340]
sub edx, dword [ebp - 0x348]
cmp eax, edx
jle 0x531fe5
mov eax, dword [ebp - 0x340]
sub eax, dword [ebp - 0x348]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0x94]
jle 0x531fe5
mov byte [ebp - 0x42], 1
jmp 0x53202c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x7c]
add dword [edx], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
add dword [ebp - 0x358], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
mov edx, dword [ebp + 0x78]
cmp eax, dword [edx]
jle 0x53202c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x90]
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533e8c
call fcn.00406bcc
test eax, eax
jle 0x53208b
mov edx, dword [ebp - 0x20]
mov eax, 0x533ea4
call fcn.00406bcc
test eax, eax
jle 0x532064
mov eax, dword [ebp - 0x38]
call fcn.0052d2bc
mov edx, dword [ebp + 0x78]
mov edx, dword [edx]
sub edx, eax
mov eax, dword [ebp + 0x60]
mov dword [eax], edx
jmp 0x53208b
mov edx, dword [ebp - 0x20]
mov eax, 0x533ebc
call fcn.00406bcc
test eax, eax
jle 0x53208b
mov eax, dword [ebp - 0x38]
call fcn.0052d2bc
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, 0x533ed8
call fcn.00406bcc
test eax, eax
jle case.0x52fe11.67
mov eax, dword [ebp - 0x38]
call fcn.0052d2bc
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov eax, dword [ebp + 0x60]
xor edx, edx
mov dword [eax], edx
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x21a], ax
movzx eax, word [ebp - 0x21a]
mov word [ebp - 0x21c], ax
movzx eax, word [ebp - 0x21a]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x5320f6
movzx eax, word [ebp - 0x21a]
and ax, 0xffdf
mov word [ebp - 0x21c], ax
movzx eax, word [ebp - 0x21c]
sub ax, 0x49
jne 0x5321f0
mov eax, dword [edi]
mov dword [ebp - 0x220], eax
mov edx, dword [ebp - 0x220]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
jle case.0x52fe11.67
lea eax, [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 2
mov eax, dword [edi]
mov edx, 2
call fcn.004068b4
mov eax, dword [ebp - 0x438]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533cc8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
jle case.0x52fe11.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
je 0x5321a8
mov eax, dword [ebp - 0x22c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x43c]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x43c]
lea eax, [ebp - 0x28]
call fcn.0040615c
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040d408
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
jmp case.0x52fe11.67
mov dword [ebp - 0x88], 0x1fffffff
mov eax, dword [ebp + 0x94]
add eax, 0xffffff5c
xor edx, edx
call fcn.0040615c
mov eax, dword [edi]
mov dword [ebp - 0x230], eax
mov edx, dword [ebp - 0x230]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jle 0x5323ad
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x440]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533ef0
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x238], eax
cmp dword [ebp - 0x238], 0
jle 0x53233c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0
je 0x5322ab
mov eax, dword [ebp - 0x23c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x240], eax
cmp dword [ebp - 0x240], 0
je 0x5322e6
mov eax, dword [ebp - 0x240]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x240]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp + 0x94]
add eax, 0xffffff5c
mov edx, dword [ebp - 0x28]
call fcn.0040615c
mov edx, dword [ebp - 0x20]
mov eax, 0x533e08
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
jle 0x5323ad
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0
je 0x532381
mov eax, dword [ebp - 0x248]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x248]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
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 0x5323ca
mov byte [ebp - 0x42], 1
jmp 0x5323ce
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 - 0x358], eax
cmp byte [ebp + 0x84], 0
jne 0x532872
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x33], 0
jne 0x532872
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xa4], 0
jne 0x5325fd
cmp dword [ebp - 0x88], 0x1fffffff
je 0x532443
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xa8], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x88]
call fcn.004388d4
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438b98
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x533f08
call fcn.00438bec
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x81], 0
jne 0x5324ee
mov eax, dword [ebp + 0x50]
test byte [eax], 1
je 0x5324b3
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
mov dword [ebp - 0x24c], eax
push 0
lea eax, [ebp - 0x358]
push eax
push 1
mov eax, 0x533f24
call fcn.00406194
push eax
mov eax, dword [ebp - 0x24c]
push eax
call sub.user32.dll_DrawTextW
mov dword [ebp - 0x250], eax
jmp 0x5325c3
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
mov dword [ebp - 0x254], eax
push 0
lea eax, [ebp - 0x358]
push eax
push 1
mov eax, 0x533f34
call fcn.00406194
push eax
mov eax, dword [ebp - 0x254]
push eax
call sub.user32.dll_DrawTextW
mov dword [ebp - 0x258], eax
jmp 0x5325c3
lea edx, [ebp - 0x444]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xac]
call fcn.0040d140
mov edx, dword [ebp - 0x444]
mov eax, dword [ebp + 0x94]
add eax, 0xffffff50
mov ecx, 0x533f44
call fcn.004065dc
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xac]
mov eax, dword [ebp - 0x38]
call fcn.00439dc0
mov dword [ebp - 0x264], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb0]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 0
je 0x532572
mov eax, dword [ebp - 0x260]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x260], eax
push 0
lea eax, [ebp - 0x358]
push eax
mov eax, dword [ebp - 0x260]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb0]
call fcn.00406194
push eax
mov eax, dword [ebp - 0x264]
push eax
call sub.user32.dll_DrawTextW
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0xb0]
mov eax, dword [ebp - 0x38]
call fcn.00439bf4
add eax, dword [ebp - 0x358]
sub eax, 0xc
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00438bec
cmp dword [ebp - 0x88], 0x1fffffff
je 0x532872
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0xa8]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
jmp 0x532872
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb4], 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa4]
mov edx, 0x533f58
call fcn.004068ac
jne 0x532739
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x532644
mov dword [ebp - 0x268], 0x1fffffff
jmp 0x532655
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x268], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x268]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x532693
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x5326a4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00439560
mov eax, dword [ebp - 0x358]
add eax, 8
push eax
mov eax, dword [ebp - 0x354]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x354]
add ecx, 2
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.00439990
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0x1fffffff
jne 0x532709
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x53271a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x26c]
call fcn.00439400
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x532739
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa4]
mov edx, 0x533f74
call fcn.004068ac
jne 0x532865
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x532770
mov dword [ebp - 0x270], 0x1fffffff
jmp 0x532781
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x270], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x270]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x5327bf
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x5327d0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00439560
mov eax, dword [ebp - 0x358]
add eax, 8
push eax
mov eax, dword [ebp - 0x354]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x354]
add ecx, 2
mov edx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x38]
call fcn.0043983c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 0x1fffffff
jne 0x532835
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x532846
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x274]
call fcn.00439400
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x532865
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
add dword [ebp - 0x358], 0xc
jmp case.0x52fe11.67
mov eax, dword [edi]
cmp word [eax + 4], 0x3e
je 0x5328aa
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x532898
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x81], 0
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
mov edx, eax
or dl, byte [0x533c54]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x276], ax
movzx eax, word [ebp - 0x276]
mov word [ebp - 0x278], ax
movzx eax, word [ebp - 0x276]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x53290a
movzx eax, word [ebp - 0x276]
and ax, 0xffdf
mov word [ebp - 0x278], ax
movzx eax, word [ebp - 0x278]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x4c
jne 0x532950
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x532933
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x81], 1
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xac], 1
cmp word [ebp - 0xa2], 0x46
jne case.0x52fe11.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0
je 0x5329a0
mov eax, dword [ebp - 0x27c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533e20
call fcn.0052cc18
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
je 0x5329e7
mov eax, dword [ebp - 0x280]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x280], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004036f4
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 - 0x358], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [ebp + 0x7c]
mov dword [edx], eax
jmp case.0x52fe11.67
mov eax, dword [edi]
mov dword [ebp - 0x284], eax
mov edx, dword [ebp - 0x284]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jle case.0x52fe11.67
lea eax, [ebp - 0x448]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x448]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533e8c
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28c], eax
cmp dword [ebp - 0x28c], 0
jle 0x532b7e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
je 0x532b01
mov eax, dword [ebp - 0x290]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x44c]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x44c]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov edx, dword [ebp - 0x28]
mov eax, 0x533f90
call fcn.00406bcc
test eax, eax
jle 0x532b4e
mov eax, dword [ebp + 0x40]
mov byte [eax], 1
jmp 0x532b7e
mov edx, dword [ebp - 0x28]
mov eax, 0x533fa8
call fcn.00406bcc
test eax, eax
jle 0x532b67
mov eax, dword [ebp + 0x40]
mov byte [eax], 0
jmp 0x532b7e
mov edx, dword [ebp - 0x28]
mov eax, 0x533fc0
call fcn.00406bcc
test eax, eax
jle 0x532b7e
mov eax, dword [ebp + 0x40]
mov byte [eax], 2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp dword [eax], 0
je 0x532bae
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x533c4c
call fcn.0040651c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
jmp 0x532bc0
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, 0x533fdc
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x294], eax
cmp dword [ebp - 0x294], 0
jle 0x532c94
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x298], eax
cmp dword [ebp - 0x298], 0
je 0x532c09
mov eax, dword [ebp - 0x298]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x298], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x298]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x29c], eax
cmp dword [ebp - 0x29c], 0
je 0x532c44
mov eax, dword [ebp - 0x29c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x29c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
call fcn.0052cc6c
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533da8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2a0], eax
cmp dword [ebp - 0x2a0], 0
jle case.0x52fe11.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x52fe11.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0
je 0x532ced
mov eax, dword [ebp - 0x2a4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2a4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x533dc4
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0
jle 0x532d4e
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x60]
xor al, 1
mov byte [ebp - 0x2a9], al
jmp 0x532d55
mov byte [ebp - 0x2a9], 0
cmp byte [ebp - 0x2a9], 0
je 0x532e45
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x2b0], 0
je 0x532d85
mov eax, dword [ebp - 0x2b0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2b0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x8c], eax
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x25], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
push 0x1fffffff
mov eax, dword [ebp - 0x33c]
add eax, 2
push eax
lea eax, [ebp - 0x3c0]
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 - 0x344]
call fcn.00408c54
lea eax, [ebp - 0x3c0]
push eax
push 1
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.0052ca10
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
cmp byte [ebp + 0x84], 0
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x25], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x532e77
mov dword [ebp - 0x2b4], 0x1fffffff
jmp 0x532e88
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x2b4]
mov dword [eax - 0x88], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x532eb5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x532ec6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.00439400
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00439040
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.00439048
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x33c]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x38]
call fcn.00439990
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.00439048
jmp case.0x52fe11.67
mov eax, dword [edi]
mov dword [ebp - 0x2b8], eax
mov edx, dword [ebp - 0x2b8]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2bc], 0
jle case.0x52fe11.67
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x532faa
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x532f8a
mov dword [ebp - 0x2c0], 0x1fffffff
jmp 0x532f9b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x2c0]
mov dword [eax - 0x78], edx
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.004068b4
mov eax, dword [ebp - 0x450]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x533ff8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0
jle 0x533058
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2c8], 0
je 0x533016
mov eax, dword [ebp - 0x2c8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2c8], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x454]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x454]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00438bec
mov edx, dword [ebp - 0x20]
mov eax, 0x534010
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2cc], eax
cmp dword [ebp - 0x2cc], 0
jle 0x533107
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x533107
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x533107
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0
je 0x5330ba
mov eax, dword [ebp - 0x2d0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2d0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x50]
call fcn.004388d4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004388d4
mov edx, dword [ebp - 0x20]
mov eax, 0x533da8
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2d4], eax
cmp dword [ebp - 0x2d4], 0
jle 0x53313a
movzx eax, byte [ebp + 0x84]
xor al, 1
mov byte [ebp - 0x2d5], al
jmp 0x533141
mov byte [ebp - 0x2d5], 0
cmp byte [ebp - 0x2d5], 0
je 0x533216
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x533216
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x533216
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2dc], eax
cmp dword [ebp - 0x2dc], 0
je 0x533192
mov eax, dword [ebp - 0x2dc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2dc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x2dc]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x5331c5
mov dword [ebp - 0x2e0], 0x1fffffff
jmp 0x5331d6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x2e0], eax
mov edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x28]
call fcn.0052cf44
mov dword [ebp - 0x2e4], eax
cmp dword [ebp - 0x2e4], 0x1fffffff
jne 0x533205
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp 0x533216
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x2e4]
call fcn.00439400
mov edx, dword [ebp - 0x20]
mov eax, 0x53402c
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2e8], eax
cmp dword [ebp - 0x2e8], 0
jle 0x5333cd
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2ec], eax
cmp dword [ebp - 0x2ec], 0
je 0x53325f
mov eax, dword [ebp - 0x2ec]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2ec], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2f0], eax
cmp dword [ebp - 0x2f0], 0
je 0x53329a
mov eax, dword [ebp - 0x2f0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2f0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x534044
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp - 0x2f4], 0
je 0x5332df
mov eax, dword [ebp - 0x2f4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2f4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x2f4]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x458]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x458]
mov eax, 0x534054
call fcn.00406bcc
test eax, eax
jle case.0x52fe11.67
lea eax, [ebp - 0x28]
mov ecx, 0xa
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x45c]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x45c]
mov eax, 0x534078
call fcn.00406bcc
test eax, eax
jle case.0x52fe11.67
lea eax, [ebp - 0x464]
push eax
lea edx, [ebp - 0x468]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x468]
mov eax, 0x534078
call fcn.00406bcc
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp - 0x464]
lea edx, [ebp - 0x460]
call fcn.0040cb4c
mov edx, dword [ebp - 0x460]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov eax, dword [ebp - 0x28]
call fcn.0052cc6c
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c64
jmp case.0x52fe11.67
mov edx, dword [ebp - 0x20]
mov eax, 0x53408c
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2f8], eax
cmp dword [ebp - 0x2f8], 0
jle case.0x52fe11.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x2fc], 0
je 0x533416
mov eax, dword [ebp - 0x2fc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2fc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x46c]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x46c]
lea eax, [ebp - 0x28]
call fcn.0040615c
mov eax, dword [ebp - 0x28]
call fcn.0052cc6c
cmp eax, 5
ja case.0x53345b.0
jmp dword [eax*4 + 0x533462]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 8
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xa
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xc
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xe
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x10
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x28]
call fcn.0052cc6c
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c64
jmp case.0x52fe11.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x2fe], ax
movzx eax, word [ebp - 0x2fe]
mov word [ebp - 0x300], ax
movzx eax, word [ebp - 0x2fe]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x53353a
movzx eax, word [ebp - 0x2fe]
and ax, 0xffdf
mov word [ebp - 0x300], ax
movzx eax, word [ebp - 0x300]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x533575
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
mov edx, eax
or dl, byte [0x533c38]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x54
jne 0x5335a2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c84
mov edx, eax
or dl, byte [0x533c38]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00438c90
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x48
jne 0x5335bb
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 1
jmp case.0x52fe11.67
cmp word [ebp - 0xa2], 0x50
jne 0x5337e8
mov eax, dword [edi]
mov dword [ebp - 0x304], eax
mov edx, dword [ebp - 0x304]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
jle case.0x52fe11.67
lea eax, [ebp - 0x470]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.004068b4
mov eax, dword [ebp - 0x470]
lea edx, [ebp - 0x20]
call fcn.0040c4a0
mov edx, dword [ebp - 0x20]
mov eax, 0x53402c
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x30c], eax
cmp dword [ebp - 0x30c], 0
jle case.0x52fe11.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0
je 0x53366a
mov eax, dword [ebp - 0x310]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x310], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x314], eax
cmp dword [ebp - 0x314], 0
je 0x5336a5
mov eax, dword [ebp - 0x314]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x314], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x534044
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x314]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0
je 0x5336ea
mov eax, dword [ebp - 0x318]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x318], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x533d74
call fcn.00406bcc
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x318]
mov eax, dword [ebp - 0x28]
call fcn.004068b4
lea edx, [ebp - 0x474]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x474]
mov eax, 0x5340a4
call fcn.00406bcc
test eax, eax
jle case.0x52fe11.67
lea eax, [ebp - 0x28]
mov ecx, 0x11
mov edx, 1
call fcn.00406984
lea edx, [ebp - 0x478]
mov eax, dword [ebp - 0x28]
call fcn.0040c4a0
mov edx, dword [ebp - 0x478]
mov eax, 0x5340d4
call fcn.00406bcc
dec eax
jne case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00439558
cmp al, 1
jne 0x533784
mov dword [ebp - 0x31c], 0x1fffffff
jmp 0x533795
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.004393f8
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x31c]
mov dword [eax - 0x78], edx
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0052cb60
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x320], 0x1fffffff
jne 0x5337d2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00439560
jmp case.0x52fe11.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x320]
call fcn.00439400
jmp case.0x52fe11.67
mov edx, dword [edi]
mov eax, 0x5340e4
call fcn.0052cc18
dec eax
jne 0x533806
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x31], 1
jmp case.0x52fe11.67
mov edx, dword [edi]
mov eax, 0x5340fc
call fcn.0052cc18
dec eax
jne case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x32], 1
jmp case.0x52fe11.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x533b90
call fcn.00406bcc
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.004068b4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0
je 0x53386a
mov eax, dword [ebp - 0x324]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x534114
call fcn.0052cc18
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x20]
call fcn.004068b4
lea edx, [ebp - 0x47c]
mov eax, dword [ebp - 0x28]
call fcn.0052ce6c
mov edx, dword [ebp - 0x47c]
lea eax, [ebp - 0x28]
call fcn.0040615c
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.004036f4
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x94]
push eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
call fcn.0052d348
pop ecx
jmp case.0x52fe11.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x33], 1
cmp dword [ebp - 0x10], 0
je 0x5338f2
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.0040615c
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.0040615c
mov eax, dword [edi]
mov dword [ebp - 0x328], eax
mov edx, dword [ebp - 0x328]
mov eax, 0x533b90
call fcn.00406bcc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
jle 0x53392d
movzx eax, byte [ebp - 0x42]
xor al, 1
mov byte [ebp - 0x32d], al
jmp 0x533934
mov byte [ebp - 0x32d], 0
cmp byte [ebp - 0x32d], 0
je 0x533996
lea eax, [ebp - 0x480]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.004068b4
mov edx, dword [ebp - 0x480]
lea eax, [ebp - 0x1c]
call fcn.0040651c
lea eax, [ebp - 0x484]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.004068b4
mov edx, dword [ebp - 0x484]
lea eax, [ebp - 0x14]
call fcn.0040651c
mov eax, edi
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00406984
jmp 0x5339dc
cmp byte [ebp - 0x42], 0
jne 0x5339dc
mov eax, dword [edi]
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
je 0x5339ca
mov eax, dword [ebp - 0x338]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x338], eax
mov eax, edi
mov ecx, dword [ebp - 0x338]
mov edx, 1
call fcn.00406984
mov eax, dword [edi]
call fcn.00406478
test eax, eax
jle 0x5339f7
cmp byte [ebp - 0x41], 0
jne 0x5339f7
cmp byte [ebp - 0x42], 0
je 0x52d6a8
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0xfffffffe
jne 0x533a1c
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x533a1c
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 0x533b0d
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 0x533a6a
cmp byte [ebp + 0x80], 0
je 0x533a6a
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0xb0]
jle 0x533a54
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 0x533a6a
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 0x533a81
mov eax, dword [ebp + 0x7c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x533b02
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 0x533b02
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x533b02
cmp byte [ebp + 0x84], 0
jne 0x533b02
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x358]
mov dword [eax - 0x68], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x34c]
mov dword [eax - 0x64], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x70]
mov eax, dword [ebp - 0x38]
call fcn.00439808
mov eax, dword [ebp - 0x348]
inc eax
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x70], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x64]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x6c], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
call fcn.00406108
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x533b6a
lea eax, [ebp - 0x484]
mov edx, 0x23
call fcn.00406100
lea eax, [ebp - 0x3f0]
mov edx, 0xb
call fcn.00406100
lea eax, [ebp - 0x3c4]
call fcn.004060f8
lea eax, [ebp - 0x3b0]
mov edx, 3
call fcn.00406100
lea eax, [ebp - 0x34]
mov edx, 0xd
call fcn.00406100
ret