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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xaa
push 0
push 0
dec ecx
jne 0x506b69
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x90]
lea edi, [ebp - 0x418]
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 0x50df06
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 - 0x40c], eax
push edi
lea esi, [ebp - 0x418]
lea edi, [ebp - 0x448]
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 0x506c11
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax]
add dword [ebp - 0x418], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 4]
add dword [ebp - 0x414], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 8]
sub dword [ebp - 0x410], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 0xc]
sub dword [ebp - 0x40c], 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.0040634c
lea eax, [ebp - 0x30]
xor edx, edx
call fcn.004063a0
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 - 0x45c]
xor ecx, ecx
mov edx, 0x14
call fcn.004036f4
mov dword [ebp - 0x45c], 0x14
mov dword [ebp - 0x70], 0xffffffff
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x42], 0
mov byte [ebp - 0xa9], 1
mov byte [ebp - 0xaa], 1
mov eax, dword [ebp + 0x20]
mov byte [eax], 0
mov eax, dword [ebp + 0x1c]
mov byte [eax], 0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
xor edx, edx
call fcn.004063a0
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 0x506ce8
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 2
jae 0x506ce8
mov byte [ebp - 0xb8], 1
mov byte [ebp + 0x80], 0
push edi
lea esi, [ebp - 0x418]
lea edi, [ebp - 0x428]
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.004063a0
lea eax, [ebp - 0x18]
xor edx, edx
call fcn.004063a0
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004063a0
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 0x506d57
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x428], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x29], 0
je 0x506e0b
cmp byte [ebp + 0x84], 0
jne 0x506e0b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.0043cfc0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x506da0
mov dword [ebp - 0xd8], 0x1fffffff
jmp 0x506db1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xd8]
call fcn.0043cfc8
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 - 0x414]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x38]
call fcn.0043d94c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.0043cfc8
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 0x50dd7a
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.00506a50
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x38]
call fcn.00506a7c
mov dword [ebp - 0x4c], eax
mov edx, dword [edi]
mov eax, 0x50df24
call fcn.00406e10
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jle 0x506eca
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x50df24
call fcn.0040ae90
mov esi, eax
mov ecx, dword [ebp - 0x78]
inc ecx
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.0040ae90
mov ebx, eax
test ebx, ebx
jle 0x506ea8
cmp esi, ebx
jg 0x506eca
test esi, esi
jne 0x506eb0
test ebx, ebx
jg 0x506eca
cmp esi, ebx
jge 0x506ebb
test esi, esi
jle 0x506ebb
mov dword [ebp - 0x78], esi
test ebx, ebx
jne 0x506ec4
xor eax, eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jg 0x506e7c
cmp dword [ebp - 0x78], 0
jle 0x506ee6
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.00406af8
jmp 0x506ef0
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.004063a0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0
je 0x506f22
mov eax, dword [ebp - 0xdc]
sub eax, 0xa
cmp word [eax], 2
je 0x506f22
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x506f48
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 - 0x98], 0
jle 0x507137
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x50df44
mov dword [ebp - 0x468], eax
mov eax, 0x50df24
mov dword [ebp - 0x464], eax
mov eax, 0x50df34
mov dword [ebp - 0x460], eax
lea eax, [ebp - 0x468]
push eax
mov eax, 0x50df54
mov dword [ebp - 0x474], eax
mov eax, 0x50df70
mov dword [ebp - 0x470], eax
mov eax, 0x50df88
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x474]
mov edx, 2
pop ecx
call fcn.005067a8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
je 0x506ff3
mov eax, dword [ebp - 0xe4]
sub eax, 0xa
cmp word [eax], 2
je 0x506ff3
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0
je 0x507019
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 - 0x98], eax
cmp dword [ebp - 0xd4], 0
jl 0x50705c
cmp dword [ebp - 0x98], 0
jle 0x50705c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jne 0x50705c
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x5070a4
cmp dword [ebp - 0xa8], 0
jne 0x5070a4
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x5070a4
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00426fd0
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x5070a4
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.005118d8
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
jne 0x5070e2
push edi
lea esi, [ebp - 0x428]
lea edi, [ebp - 0x438]
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 0x50711d
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x430], eax
jmp 0x50711d
push edi
lea esi, [ebp - 0x418]
lea edi, [ebp - 0x438]
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 0x50711d
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x430], eax
add dword [ebp - 0x434], 0x2710
mov eax, dword [ebp - 0x434]
add eax, dword [ebp - 0x50]
dec eax
mov dword [ebp - 0x42c], eax
cmp byte [ebp + 0x88], 0
jne 0x50715e
cmp dword [ebp - 0xd4], 0
jl 0x507156
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x50715e
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x507175
cmp dword [ebp - 0x98], 0
jle 0x507175
xor eax, eax
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x41], 0
jmp 0x507313
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x5071c2
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x5071c2
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp + 0x88], 0
jne 0x5071b4
cmp dword [ebp - 0x98], 0
jle 0x5071b4
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x5071b4
cmp byte [ebp - 0xb9], 0
jne 0x5071b8
xor eax, eax
jmp 0x5071ba
mov al, 1
mov byte [ebp - 0x41], al
jmp 0x507313
cmp byte [ebp + 0x80], 0
je 0x50730e
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
setne al
or al, byte [ebp + 0x84]
je 0x50730e
cmp dword [ebp - 0x98], 0
jle 0x507271
xor eax, eax
mov dword [ebp - 0x44c], eax
lea eax, [ebp - 0x45c]
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 + 0x5c9650]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
push eax
lea eax, [ebp - 0x438]
push eax
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x44c]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
jne 0x507296
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x7c], eax
jmp 0x507296
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp - 0xb7], 0
je 0x507296
mov eax, dword [ebp + 0x78]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp + 0x88], 0
jne 0x507296
mov eax, dword [ebp + 0x74]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp - 0x98], 0
jle 0x5072aa
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x98]
jl 0x5072ae
xor eax, eax
jmp 0x5072b0
mov al, 1
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x507313
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x507313
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x507313
cmp byte [ebp + 0x80], 0
je 0x507313
cmp byte [ebp - 0xcd], 0
jne 0x507313
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x507313
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 0x50dd9a
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x78], 0
jle 0x50733d
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jg 0x507327
cmp dword [ebp - 0x7c], 0
jne 0x50733d
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 1
call fcn.00406af8
jmp 0x507362
cmp dword [ebp - 0x7c], 0
jle 0x507358
lea eax, [ebp - 0x10]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x7c]
mov edx, 1
call fcn.00406af8
jmp 0x507362
lea eax, [ebp - 0x10]
mov edx, dword [edi]
call fcn.004063a0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0
je 0x507394
mov eax, dword [ebp - 0xec]
sub eax, 0xa
cmp word [eax], 2
je 0x507394
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xf0], 0
je 0x5073ba
mov eax, dword [ebp - 0xf0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x50742f
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x50df44
mov dword [ebp - 0x468], eax
mov eax, 0x50df24
mov dword [ebp - 0x464], eax
mov eax, 0x50df34
mov dword [ebp - 0x460], eax
lea eax, [ebp - 0x468]
push eax
mov eax, 0x50df54
mov dword [ebp - 0x474], eax
mov eax, 0x50df70
mov dword [ebp - 0x470], eax
mov eax, 0x50df88
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x474]
mov edx, 2
pop ecx
call fcn.005067a8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
je 0x507461
mov eax, dword [ebp - 0xf4]
sub eax, 0xa
cmp word [eax], 2
je 0x507461
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je 0x507487
mov eax, dword [ebp - 0xf8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x5074a1
mov eax, dword [ebp + 0x4c]
dec dword [eax]
mov eax, dword [ebp - 0x10]
mov edx, 0x50dfa0
call fcn.00406af0
jne 0x5074db
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.004063a0
mov eax, edi
mov ecx, 1
mov edx, 1
call fcn.00406bc8
xor eax, eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
jle 0x5075e5
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x5075e5
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x5075e5
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x50752b
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x50752b
cmp byte [ebp - 0xb9], 0
jne 0x5075b4
cmp dword [ebp - 0xa8], 0
je 0x507540
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
jne 0x5075b4
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406bc8
lea eax, [ebp - 0x14]
mov edx, 0x50dfa0
call fcn.00406760
xor eax, eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0xa8], 0
je 0x50757a
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 0x5075b4
movzx eax, byte [ebp - 0xb9]
xor al, 1
and al, byte [ebp - 0xcd]
je 0x5075b4
cmp dword [ebp - 0xd4], 0
jl 0x5075b4
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jle 0x5075b4
mov byte [ebp - 0x41], 1
cmp byte [ebp - 0x41], 0
je 0x5075e5
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 0x50dd9a
cmp dword [ebp - 0x98], 0
jle 0x508e8e
mov byte [ebp - 0xb7], 0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x50761f
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x50761f
mov eax, dword [ebp - 0x50]
shr eax, 2
mov edx, dword [ebp + 0x68]
mov dword [edx], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x36], 0
je 0x507645
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x507645
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 0x507662
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 0x50767f
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x5076a2
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov edx, dword [edx]
call fcn.004063a0
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
call fcn.00406760
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.004063a0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x10]
call fcn.00406760
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
lea eax, [ebp - 8]
xor edx, edx
call fcn.004063a0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
je 0x5076f7
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406bc8
mov byte [ebp - 0xa9], 1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x508e8e
cmp byte [ebp + 0x84], 0
jne 0x507ef4
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x36], 0
je 0x507732
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
sub dword [ebp - 0x41c], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x507749
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
add dword [ebp - 0x41c], eax
mov eax, dword [ebp + 0x60]
mov eax, dword [eax]
sub dword [ebp - 0x41c], eax
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x41c]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x41c], edx
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x428]
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 - 0x428]
lea edi, [ebp - 0x438]
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 - 0x420]
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 + 0x5c9650]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xffffffdf
and edx, 0xfffffff7
and edx, 0xfffffdff
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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 0x507859
mov byte [ebp - 0xb6], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
cmp eax, dword [ebp - 0x420]
jg 0x507848
mov byte [ebp - 0xba], 0
jmp 0x507859
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x428]
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.004063a0
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x428]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
cmp byte [ebp - 0xb6], 0
je 0x5078e0
cmp byte [ebp + 0x80], 0
jne 0x5078e0
mov eax, dword [ebp - 0x420]
cmp eax, dword [ebp - 0x430]
jle 0x5078e0
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
mov eax, dword [ebp - 0x420]
sub eax, dword [ebp - 0x428]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
cmp eax, dword [ebp - 0x410]
jge 0x507d7f
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x39], 0
je 0x507a4e
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.00408ff4
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.0043c854
cmp byte [ebp - 0xba], 0
jne 0x507975
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0xc], 0
sete al
and al, byte [ebp - 0xb5]
je 0x5079dc
cmp dword [ebp - 0xd4], 0
jl 0x5079dc
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x5079dc
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
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.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
jmp 0x507a28
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
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.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x438]
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.0043c854
cmp dword [ebp - 0xd4], 0
jl 0x507d31
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x507d31
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 8]
jle 0x507a95
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 0x507b84
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
movzx edx, byte [ebp - 0xb5]
xor dl, 1
and edx, 0x7f
or eax, dword [edx*4 + 0x5c9648]
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.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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 0x507b21
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xfc]
jge 0x507b55
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x100], eax
jmp 0x507b61
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x420], eax
jmp 0x507dac
lea eax, [ebp - 0xc]
mov edx, 0x50dfb0
call fcn.00406760
mov eax, dword [ebp - 0xc]
call fcn.004063d8
mov dword [ebp - 0x40], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
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.0043de8c
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x10]
call fcn.004063d8
mov edx, dword [ebp - 0x40]
call fcn.0040e4ac
test eax, eax
je 0x507dac
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb5], 1
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004064f8
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x507c4e
mov eax, dword [ebp - 0x104]
sub eax, 0xa
cmp word [eax], 2
je 0x507c4e
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0xc]
call fcn.0040572c
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x507c74
mov eax, dword [ebp - 0x108]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xa0], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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 0x507d05
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x110], eax
jmp 0x507d11
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x420], eax
jmp 0x507dac
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
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.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
jmp 0x507dac
cmp dword [ebp - 0xd4], 0
jl 0x507dac
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jg 0x507dac
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x420], 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 0x507df5
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x507df5
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 0x507df5
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.0040634c
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x41], 0
je 0x507e93
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 0xff
call fcn.0043cfc8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.0043d108
mov eax, dword [ebp - 0x428]
sar eax, 1
jns 0x507e32
adc eax, 0
mov ebx, eax
add ebx, ebx
mov eax, ebx
and eax, 0x80000003
jns 0x507e44
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x507e4f
mov esi, 2
jmp 0x507e51
xor esi, esi
mov ecx, dword [ebp - 0x40c]
add ecx, esi
dec ecx
mov edx, ebx
mov eax, dword [ebp - 0x38]
call fcn.0043d8e4
jmp 0x507e8b
cmp esi, 2
jne 0x507e6f
xor esi, esi
jmp 0x507e74
mov esi, 2
mov ecx, dword [ebp - 0x40c]
add ecx, esi
dec ecx
lea edx, [ebx + 2]
mov eax, dword [ebp - 0x38]
call fcn.0043d884
add ebx, 2
cmp ebx, dword [ebp - 0x420]
jl 0x507e66
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
je 0x507ec2
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x420], eax
jmp 0x507ed7
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x420]
add eax, dword [ebp - 0x428]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x424], eax
jmp 0x508cbe
cmp byte [ebp + 0x88], 0
jne 0x507f9c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x507f1b
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x507f9c
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle 0x507f9c
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
jne 0x507f9c
cmp dword [ebp - 0xa8], 0
je 0x507f62
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x507f62
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x507f62
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 0x50deb0
lea eax, [ebp - 8]
mov edx, 0x50dfd0
call fcn.004063a0
cmp byte [ebp - 0xba], 1
je 0x507f8a
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00406760
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 - 0x418]
lea edi, [ebp - 0x428]
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 - 0x428]
cmp eax, dword [ebp - 0x420]
jle 0x507fc8
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x420], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x428]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
xor eax, eax
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x5080c8
cmp dword [ebp - 0x10], 0
je 0x5080c8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
je 0x50804c
mov eax, dword [ebp - 0x114]
sub eax, 0xa
cmp word [eax], 2
je 0x50804c
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
je 0x50807e
mov eax, dword [ebp - 0x118]
sub eax, 0xa
cmp word [eax], 2
je 0x50807e
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040572c
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x5080a4
mov eax, dword [ebp - 0x11c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x11c]
cmp word [eax + edx*2 - 2], 0x20
jne 0x5080c8
mov edx, 0x50df44
mov eax, dword [ebp - 0x38]
call fcn.0043dcc0
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x5082dc
mov eax, dword [ebp - 0x420]
sub eax, dword [ebp - 0x428]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x430]
sub edx, dword [ebp - 0x438]
cmp eax, edx
jle 0x5082dc
cmp byte [ebp - 0xba], 0
jne 0x50812a
mov eax, dword [ebp - 0x430]
sub eax, dword [ebp - 0x438]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x420], eax
jmp 0x5082dc
lea eax, [ebp - 0xc]
mov ecx, 0x50dfb0
mov edx, dword [ebp - 0x10]
call fcn.00406820
mov eax, dword [ebp - 0xc]
call fcn.004063d8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x94]
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x438]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
or eax, 0x10000
movzx edx, byte [ebp - 0xba]
or eax, dword [edx*4 + 0x5c9658]
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.0043de8c
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x10]
call fcn.004063d8
mov edx, dword [ebp - 0x40]
call fcn.0040e4ac
test eax, eax
je 0x5082dc
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004064f8
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.0043de8c
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x508221
mov eax, dword [ebp - 0x120]
sub eax, 0xa
cmp word [eax], 2
je 0x508221
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0xc]
call fcn.0040572c
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x508247
mov eax, dword [ebp - 0x124]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x124]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x128]
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 - 0x12c], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x12c]
jge 0x5082b2
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x130], eax
jmp 0x5082be
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x428]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x424]
jl 0x508371
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x41c]
jge 0x508371
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x38]
jge 0x508371
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.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetTextExtentExPointW
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
cmp eax, dword [ebp - 0x98]
jne 0x50835f
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x98]
add dword [eax - 0x48], edx
jmp 0x508371
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
mov edx, dword [ebp + 0x94]
add dword [edx - 0x48], eax
mov eax, dword [ebp - 0x420]
sub eax, dword [ebp - 0x428]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jge 0x508394
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa0]
add dword [eax], edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
jne 0x5083c8
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x428]
mov dword [ebp - 0x5c], eax
jmp 0x5083d4
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x428]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x24]
movzx eax, byte [eax]
and al, byte [ebp + 0x88]
je 0x50856f
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x41c]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x41c], edx
mov eax, dword [ebp - 0x41c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x424], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp - 0x420]
sub eax, dword [ebp - 0xa0]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
mov edx, dword [ebp + 0x30]
cmp eax, dword [edx + 8]
jne 0x508452
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x428]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x420]
mov dword [eax + 8], edx
jmp 0x508484
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x428]
jle 0x50846a
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x428]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
cmp eax, dword [ebp - 0x420]
jge 0x508484
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x420]
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 0x5084ac
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x424]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x41c]
mov dword [eax + 0xc], edx
jmp 0x5084e0
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x424]
jle 0x5084c6
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x424]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x41c]
jge 0x5084e0
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x41c]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x428]
jl 0x508546
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x420]
jg 0x508546
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x424]
jl 0x508546
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x41c]
jge 0x508546
mov eax, dword [ebp + 0x20]
mov byte [eax], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.0040634c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.0040634c
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x50856f
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 0x5085ba
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x410]
jle 0x5085ba
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
je 0x5085ba
cmp dword [ebp - 8], 0
je 0x5085b6
cmp dword [ebp - 0xa8], 0
je 0x5085ba
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x5085ba
xor eax, eax
jmp 0x5085bc
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 0x508672
cmp byte [ebp - 0xa9], 0
je 0x508616
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x410]
jg 0x508600
cmp dword [ebp - 8], 0
je 0x508672
cmp byte [ebp - 0xcd], 0
jne 0x508616
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jge 0x508672
cmp dword [ebp - 0xa8], 0
je 0x508672
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 1
cmp byte [ebp + 0x80], 0
je 0x508641
cmp byte [ebp - 0x41], 0
jne 0x508672
cmp dword [ebp - 0xd4], 0
jl 0x508672
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x508672
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x448]
cmp eax, dword [ebp - 0xa0]
jl 0x50866b
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 0x5086a0
cmp dword [ebp - 0xd4], 0
jl 0x5086a0
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd4]
jg 0x5086a0
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0xcd], 0
je 0x5086be
cmp byte [ebp - 0xa9], 0
jne 0x5086be
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jg 0x5087b0
cmp byte [ebp - 0xcf], 0
jne 0x5086fe
cmp byte [ebp - 0xcd], 0
jne 0x5086fe
cmp byte [ebp - 0xa9], 0
jne 0x5086fe
cmp byte [ebp + 0x80], 0
jne 0x5086fe
cmp byte [ebp - 0xb8], 0
jne 0x5086fe
cmp byte [ebp - 0x41], 0
jne 0x5086fe
cmp byte [ebp - 0xba], 0
jne 0x5087b0
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
cmp eax, dword [edx]
jge 0x508758
cmp byte [ebp - 0xcf], 0
jne 0x508758
cmp byte [ebp - 0xcd], 0
jne 0x508728
mov eax, dword [ebp + 0x48]
mov eax, dword [eax]
mov edx, dword [ebp + 0x4c]
cmp eax, dword [edx]
jne 0x508758
cmp byte [ebp - 0xa9], 0
je 0x508758
cmp dword [ebp - 8], 0
je 0x508758
cmp byte [ebp + 0x80], 0
jne 0x508758
cmp byte [ebp - 0xb8], 0
jne 0x508758
cmp byte [ebp - 0x41], 0
jne 0x508758
cmp byte [ebp - 0xba], 0
jne 0x5087b0
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 0x508925
cmp byte [ebp - 0x41], 0
jne 0x508925
cmp byte [ebp - 0xba], 0
je 0x508925
cmp byte [ebp - 0xa9], 0
je 0x508925
cmp byte [ebp - 0xaa], 0
jne 0x508925
cmp dword [ebp - 8], 0
jne 0x508925
lea eax, [ebp - 0x478]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00406af8
lea eax, [ebp - 0x478]
mov edx, 0x50dfd0
call fcn.00406760
mov edx, dword [ebp - 0x478]
mov eax, dword [ebp - 0x38]
call fcn.0043dcc0
mov ebx, eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
sub eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
add ebx, eax
cmp ebx, dword [ebp - 0x410]
jle 0x50891c
cmp byte [ebp - 0xb9], 0
je 0x50881c
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jg 0x508820
xor eax, eax
jmp 0x508822
mov al, 1
mov byte [ebp - 0x41], al
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
cmp byte [ebp - 0xcd], 0
je 0x50885e
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x50885e
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x50885e
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 0x50deb0
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x50889b
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je 0x50889b
cmp byte [ebp - 0xcd], 0
jne 0x50889b
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x50889b
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 0x50deb0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x5088f1
cmp byte [ebp - 0xcf], 0
jne 0x5088f1
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x5088d3
cmp byte [ebp + 0x80], 0
je 0x5088d3
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd4]
dec edx
cmp eax, edx
jne 0x5088f1
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x5088f1
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 0x50deb0
cmp byte [ebp - 0xcf], 0
jne 0x50893a
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x50890b
cmp byte [ebp + 0x80], 0
jne 0x50893a
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jne 0x50893a
mov byte [ebp - 0xa9], 1
jmp 0x50893a
mov byte [ebp - 0xa9], 1
jmp 0x50893a
movzx eax, byte [ebp + 0x80]
xor al, 1
or al, byte [ebp - 0xa9]
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x508b3d
cmp byte [ebp + 0x80], 0
je 0x508b3d
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 + 0x5c9650]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x34]
and edx, 0xfffffdff
and edx, 0xffffffdf
and edx, 0xffff7fff
or edx, 0x10
or eax, edx
or eax, 0x400
push eax
lea eax, [ebp - 0x438]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.user32.dll_DrawTextExW
mov eax, dword [ebp - 0x42c]
sub eax, dword [ebp - 0x434]
cmp eax, dword [ebp - 0x50]
setle byte [ebp - 0xa9]
cmp byte [ebp - 0xa9], 0
je 0x508a07
mov eax, dword [ebp - 0x410]
cmp eax, dword [ebp - 0x438]
jle 0x5089f3
mov eax, dword [ebp - 0x410]
cmp eax, dword [ebp - 0x430]
jge 0x5089ff
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
je 0x5089ff
xor eax, eax
jmp 0x508a01
mov al, 1
mov byte [ebp - 0xa9], al
cmp byte [ebp - 0xa9], 0
jne 0x508bb0
cmp byte [ebp - 0xba], 0
je 0x508bb0
mov eax, dword [ebp - 0x414]
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 0x508bb0
lea eax, [ebp - 0x47c]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00406af8
lea eax, [ebp - 0x47c]
mov edx, 0x50dfd0
call fcn.00406760
mov edx, dword [ebp - 0x47c]
mov eax, dword [ebp - 0x38]
call fcn.0043dcc0
mov edx, dword [ebp + 0x7c]
mov edx, dword [edx]
sub edx, dword [ebp - 0xa0]
add edx, dword [ebp - 0x418]
add edx, dword [ebp + 0x10]
add eax, edx
cmp eax, dword [ebp - 0x410]
jle 0x508ac1
cmp dword [ebp - 0xa8], 0
je 0x508bb0
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x508bb0
mov byte [ebp - 0xa9], 1
cmp byte [ebp - 0x41], 0
jne 0x508bb0
cmp byte [ebp - 0xaa], 0
jne 0x508bb0
cmp dword [ebp - 0xa8], 0
je 0x508bb0
cmp dword [ebp - 0xd4], 0
jge 0x508bb0
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x508bb0
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 0x50deb0
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x50deb0
cmp byte [ebp + 0x88], 0
jne 0x508bb0
cmp byte [ebp + 0x80], 0
je 0x508b55
cmp byte [ebp - 0x41], 0
jne 0x508bb0
cmp byte [ebp - 0xaa], 0
jne 0x508bb0
cmp dword [ebp - 0xa8], 0
je 0x508bb0
cmp dword [ebp - 0xd4], 0
jge 0x508bb0
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x508bb0
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 0x50deb0
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x50deb0
movzx eax, byte [ebp - 0xa9]
and al, byte [ebp + 0x80]
je 0x508c4d
cmp byte [ebp - 0x41], 0
jne 0x508c4d
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x410]
jl 0x508c4d
mov eax, dword [edi]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
je 0x508c12
mov eax, dword [ebp - 0x134]
sub eax, 0xa
cmp word [eax], 2
je 0x508c12
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x138], eax
cmp dword [ebp - 0x138], 0
je 0x508c38
mov eax, dword [ebp - 0x138]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x138]
setl byte [ebp - 0x139]
jmp 0x508c54
mov byte [ebp - 0x139], 0
cmp byte [ebp - 0x139], 0
je 0x508c73
mov eax, dword [edi]
mov edx, dword [ebp - 0x98]
cmp word [eax + edx*2], 0x3c
sete byte [ebp - 0x13a]
jmp 0x508c7a
mov byte [ebp - 0x13a], 0
cmp byte [ebp - 0x13a], 0
jne 0x508cb1
cmp byte [ebp + 0x80], 0
je 0x508cb1
cmp byte [ebp - 0x41], 0
jne 0x508cac
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x410]
jge 0x508cac
xor eax, eax
jmp 0x508cae
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.00406760
cmp byte [ebp + 0x80], 0
je 0x508d4f
cmp byte [ebp - 0x41], 0
jne 0x508ce1
cmp byte [ebp + 0x84], 0
jne 0x508d4f
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
jl 0x508d4f
mov byte [ebp - 0xce], 0
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x508d18
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x508d18
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x508d18
cmp byte [ebp - 0xa9], 0
jne 0x508d18
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 0x508d7d
cmp byte [ebp - 0xce], 0
jne 0x508d7d
mov byte [ebp - 0x41], 0
mov byte [ebp - 0xa9], 1
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
jmp 0x508d7d
cmp byte [ebp - 0xb8], 0
je 0x508d7d
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 1
jle 0x508d65
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 0x508d99
cmp byte [ebp + 0x80], 0
jne 0x508e13
cmp byte [ebp - 0x41], 0
jne 0x508e13
lea eax, [ebp - 0x480]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406af8
mov edx, dword [ebp - 0x480]
lea eax, [ebp - 0x14]
call fcn.00406760
cmp byte [ebp - 0xba], 1
je 0x508dd4
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00406760
mov eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, 1
call fcn.00406bc8
cmp byte [ebp - 0x41], 0
je 0x508df7
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 0x508e8e
mov eax, dword [ebp + 0x4c]
dec dword [eax]
cmp dword [ebp - 0xa8], 0
je 0x508e2b
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 0x508e63
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
call fcn.0040634c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 4]
call fcn.0040634c
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, 0x50df24
call fcn.00406e10
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 1
jne 0x508f0a
mov eax, dword [edi]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
je 0x508ed2
mov eax, dword [ebp - 0x140]
sub eax, 0xa
cmp word [eax], 2
je 0x508ed2
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
je 0x508ef8
mov eax, dword [ebp - 0x144]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 2
jg 0x508f0a
mov eax, edi
xor edx, edx
call fcn.0040634c
cmp byte [ebp - 0x41], 0
jne 0x50dd7a
cmp dword [ebp - 0x78], 1
jne 0x50dd7a
mov eax, dword [edi]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
je 0x508f4d
mov eax, dword [ebp - 0x148]
sub eax, 0xa
cmp word [eax], 2
je 0x508f4d
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
je 0x508f73
mov eax, dword [ebp - 0x14c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 2
jle 0x50dd7a
mov eax, dword [edi]
cmp word [eax + 2], 0x2f
jne 0x508fee
mov eax, dword [edi]
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x150], 0
je 0x508fb8
mov eax, dword [ebp - 0x150]
sub eax, 0xa
cmp word [eax], 2
je 0x508fb8
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0
je 0x508fde
mov eax, dword [ebp - 0x154]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 3
setg byte [ebp - 0x155]
jmp 0x508ff5
mov byte [ebp - 0x155], 0
cmp byte [ebp - 0x155], 0
je 0x5097ac
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x158], ax
movzx eax, word [ebp - 0x158]
mov word [ebp - 0x15a], ax
movzx eax, word [ebp - 0x158]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x50903f
movzx eax, word [ebp - 0x158]
and ax, 0xffdf
mov word [ebp - 0x15a], ax
movzx eax, word [ebp - 0x15a]
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x5097fc.67
jmp dword [eax*4 + 0x509059]
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne 0x50912f
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x4c], 0x1fffffff
jne 0x5090f4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50912f
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x4c]
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0x1fffffff
jne 0x50911e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50912f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x160]
call fcn.0043d380
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.0040634c
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x509164
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x509181
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 0x509181
cmp byte [ebp + 0x84], 0
jne 0x509181
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x50]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
cmp byte [ebp + 0x84], 0
jne 0x5091ad
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x5091ad
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
cmp byte [ebp + 0x88], 0
je 0x509260
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x50923b
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x40c]
mov dword [eax - 0x58], edx
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x418]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x5c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x60]
cmp eax, dword [ebp - 0x414]
je 0x509214
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x418]
mov dword [eax - 0x64], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x414]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x1c]
push edi
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
dec eax
mov edx, dword [ebp + 0x54]
mov dword [edx], eax
mov eax, dword [ebp + 0x28]
mov byte [eax], 0
push 0
lea eax, [ebp - 0x490]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00408ef8
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x490]
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 0x5092bf
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00426fd0
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x5092bf
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.005118d8
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 0x5092bf
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x509337
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 0x509337
cmp byte [ebp + 0x84], 0
jne 0x509337
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x428]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x41c]
sub edx, dword [eax]
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x68], edx
mov eax, dword [ebp - 0x38]
call fcn.00506a50
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x68]
sub edx, eax
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x70], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x74]
mov eax, dword [ebp - 0x38]
call fcn.0043d788
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x78]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
xor eax, eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x5c]
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0x24]
mov byte [eax], 0
cmp byte [ebp - 0xb8], 0
je case.0x5097fc.67
mov byte [ebp - 0xb8], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xb9]
mov byte [ebp + 0x80], al
jmp case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 0
jmp case.0x5097fc.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x5093cd
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
movzx edx, byte [0x50dfd8]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 6]
mov word [ebp - 0x162], ax
movzx eax, word [ebp - 0x162]
mov word [ebp - 0x164], ax
movzx eax, word [ebp - 0x162]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x509430
movzx eax, word [ebp - 0x162]
and ax, 0xffdf
mov word [ebp - 0x164], ax
movzx eax, word [ebp - 0x164]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x54
jne 0x50946e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
movzx edx, byte [0x50dfdc]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x55
jne 0x509491
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 0
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 0
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x50
jne 0x5094e8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0x1fffffff
jne 0x5094c5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x5094d6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x168]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x48
jne 0x509501
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
movzx edx, byte [0x50dfdc]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
lea edx, [ebp - 0x494]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.0043cb18
mov edx, dword [ebp - 0x494]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cb6c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.0043cad8
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cae0
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0x1fffffff
jne 0x5095c8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x16c]
call fcn.0043d380
jmp case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x80]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x84]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0x1fffffff
jne 0x50962f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x170]
call fcn.0043d380
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
movzx edx, byte [0x50dfe0]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
mov byte [ebp - 0x41], 1
jmp case.0x5097fc.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x50969c
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x50969c
mov eax, dword [ebp + 0x50]
dec dword [eax]
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x5097fc.67
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.0x5097fc.67
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax - 0x86]
mov edx, dword [ebp + 0x40]
mov byte [edx], al
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x50dff0
call fcn.00406760
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x8c]
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0x1fffffff
jne 0x509731
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x174]
call fcn.0043d380
jmp case.0x5097fc.67
mov eax, dword [edi]
cmp word [eax + 6], 0x3e
je 0x509762
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x509762
mov eax, dword [ebp + 0x50]
dec dword [eax]
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
movzx edx, byte [0x50dff8]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
mov eax, dword [ebp + 0x94]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00506b34
pop ecx
jmp case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 0
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 2]
mov word [ebp - 0x176], ax
movzx eax, word [ebp - 0x176]
mov word [ebp - 0x178], ax
movzx eax, word [ebp - 0x176]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x5097e9
movzx eax, word [ebp - 0x176]
and ax, 0xffdf
mov word [ebp - 0x178], ax
movzx eax, word [ebp - 0x178]
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x5097fc.67
jmp dword [eax*4 + 0x509803]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x78]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x5098c2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x5098c2
cmp byte [ebp + 0x84], 0
jne 0x5098c2
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x428]
mov dword [eax - 0x74], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x424]
mov dword [eax - 0x70], edx
cmp byte [ebp + 0x84], 0
jne 0x509906
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x5098e6
mov dword [ebp - 0x17c], 0x1fffffff
jmp 0x5098f7
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x17c]
mov dword [eax - 0x4c], edx
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x509936
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x5099cb
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x5099cb
cmp byte [ebp + 0x84], 0
jne 0x5099cb
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x44], 0x1fffffff
je 0x509996
cmp byte [ebp + 0x84], 0
jne 0x509996
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0x1fffffff
jne 0x509985
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x509996
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x180]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x50], eax
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x40], 0x1fffffff
je 0x5099cb
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.0040634c
mov eax, dword [ebp + 0x2c]
mov byte [eax], 1
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
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 0x509c00
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00426fd0
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jle 0x509c00
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.005118d8
mov dword [ebp - 0xa8], eax
cmp byte [ebp + 0x84], 0
je 0x509b19
cmp byte [ebp + 0x88], 0
jne 0x509b5a
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x3d], 0
mov edx, dword [edi]
mov ecx, dword [ebp - 0x70]
mov eax, 0x50e008
call fcn.0040ae90
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x509ad5
mov eax, dword [edi]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
je 0x509aa5
mov eax, dword [ebp - 0x184]
sub eax, 0xa
cmp word [eax], 2
je 0x509aa5
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x188], eax
cmp dword [ebp - 0x188], 0
je 0x509acb
mov eax, dword [ebp - 0x188]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
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.00406af8
lea edx, [ebp - 0x498]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x40]
call fcn.005068ec
mov edx, dword [ebp - 0x498]
mov eax, dword [ebp - 0xa8]
add eax, 0x40
call fcn.0040634c
jmp 0x509b5a
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
je 0x509b5a
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 0x20], 0x1fffffff
jne 0x509b46
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x509b5a
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d380
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 0x509ba7
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x509b93
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x509ba7
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 0x509bf1
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 0x509c00
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.00406af8
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e020
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x18c], 0
jle 0x509ce3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0
je 0x509c79
mov eax, dword [ebp - 0x190]
sub eax, 0xa
cmp word [eax], 2
je 0x509c79
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 0
je 0x509c9f
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, 7
mov ecx, dword [ebp - 0x194]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x49c]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x49c]
lea eax, [ebp - 0x28]
call fcn.004063a0
or edx, 0xffffffff
mov eax, dword [ebp - 0x28]
call fcn.0040d3e8
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e03c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x198], eax
cmp dword [ebp - 0x198], 0
jle 0x509db1
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004063a0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0
je 0x509d46
mov eax, dword [ebp - 0x19c]
sub eax, 0xa
cmp word [eax], 2
je 0x509d46
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
je 0x509d6c
mov eax, dword [ebp - 0x1a0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1a0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x4a0]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x4a0]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffc0
mov edx, dword [ebp - 0x28]
call fcn.004063a0
mov edx, dword [ebp - 0x20]
mov eax, 0x50e054
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jle 0x509e81
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004063a0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0
je 0x509e14
mov eax, dword [ebp - 0x1a8]
sub eax, 0xa
cmp word [eax], 2
je 0x509e14
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x1ac], 0
je 0x509e3a
mov eax, dword [ebp - 0x1ac]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1ac], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x4a4]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x4a4]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
mov edx, dword [ebp - 0x28]
call fcn.004063a0
jmp 0x509e91
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
xor edx, edx
call fcn.004063a0
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
cmp dword [ebp - 0xa8], 0
je 0x509ec3
mov eax, dword [ebp - 0xa8]
cmp byte [eax + 0x3c], 0
je 0x509ec3
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x30]
sub eax, 2
jb 0x509ec3
mov eax, dword [ebp + 0x5c]
mov dword [eax], 1
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 1
jb 0x509ed1
je 0x509eda
jmp 0x509ef0
mov byte [ebp + 0x80], 0
jmp 0x509ef0
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jne 0x509ef0
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xb8], 1
cmp byte [ebp + 0x88], 0
je 0x509f4a
mov eax, dword [ebp - 0x414]
push eax
lea eax, [ebp - 0x490]
push eax
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x414]
call fcn.00408ef8
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x490]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x64], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x414]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x58]
inc dword [eax]
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x1ae], ax
movzx eax, word [ebp - 0x1ae]
mov word [ebp - 0x1b0], ax
movzx eax, word [ebp - 0x1ae]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x509f91
movzx eax, word [ebp - 0x1ae]
and ax, 0xffdf
mov word [ebp - 0x1b0], ax
movzx eax, word [ebp - 0x1b0]
mov word [ebp - 0xa2], ax
movzx eax, word [ebp - 0xa2]
sub ax, 0x3e
je 0x509fcb
sub ax, 0xe
je 0x50a19f
sub ax, 3
je 0x50a1cb
sub ax, 3
je 0x509fee
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
mov edx, eax
or dl, byte [0x50dfd8]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x50dff0
call fcn.00406760
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov eax, dword [edi]
mov dword [ebp - 0x1b4], eax
mov edx, dword [ebp - 0x1b4]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0
jle 0x50a127
lea eax, [ebp - 0x4a8]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 4
mov eax, dword [edi]
mov edx, 4
call fcn.00406af8
mov eax, dword [ebp - 0x4a8]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e06c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0
jle 0x50a127
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
je 0x50a0be
mov eax, dword [ebp - 0x1c0]
sub eax, 0xa
cmp word [eax], 2
je 0x50a0be
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
je 0x50a0e4
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.00406af8
lea edx, [ebp - 0x4ac]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x4ac]
lea eax, [ebp - 0x28]
call fcn.004063a0
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040d3e8
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
cmp dword [ebp - 0x9c], 0
sete al
and al, byte [ebp - 0xb7]
je case.0x5097fc.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.0x5097fc.67
cmp byte [ebp + 0x88], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je case.0x5097fc.67
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle case.0x5097fc.67
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
je 0x507f62
jmp case.0x5097fc.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x5c], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x90]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
jmp case.0x5097fc.67
lea eax, [ebp - 0x4b0]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
mov eax, dword [edi]
mov edx, 1
call fcn.00406af8
mov edx, dword [ebp - 0x4b0]
lea eax, [ebp - 0x14]
call fcn.00406760
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5097fc.67
lea eax, [ebp - 0x4b4]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 6
call fcn.00406af8
mov eax, dword [ebp - 0x4b4]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e08c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jle 0x50a689
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1cc], eax
cmp dword [ebp - 0x1cc], 0
je 0x50a29f
mov eax, dword [ebp - 0x1cc]
sub eax, 0xa
cmp word [eax], 2
je 0x50a29f
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
je 0x50a2c5
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 - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x4b8]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x4b8]
lea eax, [ebp - 0x28]
call fcn.004063a0
lea edx, [ebp - 0x4bc]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4bc]
mov eax, 0x50e0b0
call fcn.00406e10
test eax, eax
jle 0x50a32d
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x4c0]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4c0]
mov eax, 0x50e0c8
call fcn.00406e10
test eax, eax
jle 0x50a427
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
lea edx, [ebp - 0x4cc]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4cc]
mov eax, 0x50e0e0
call fcn.00406e10
test eax, eax
jle 0x50a521
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x50a689
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x50a689
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x50a689
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x50a689
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 - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x50a640
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x50a613
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.0043d6dc
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 0x50a5d9
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 0x50a5d2
push 0
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x50e0f8
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1d4], eax
cmp dword [ebp - 0x1d4], 0
jle 0x50ab4a
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0
je 0x50a6e1
mov eax, dword [ebp - 0x1d8]
sub eax, 0xa
cmp word [eax], 2
je 0x50a6e1
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x50a707
mov eax, dword [ebp - 0x1dc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1e0], eax
cmp dword [ebp - 0x1e0], 0
je 0x50a751
mov eax, dword [ebp - 0x1e0]
sub eax, 0xa
cmp word [eax], 2
je 0x50a751
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e4], eax
cmp dword [ebp - 0x1e4], 0
je 0x50a777
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 - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x4d0]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4d0]
mov eax, 0x50e0b0
call fcn.00406e10
test eax, eax
jle 0x50a7ee
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x4d4]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4d4]
mov eax, 0x50e0c8
call fcn.00406e10
test eax, eax
jle 0x50a8e8
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
lea edx, [ebp - 0x4d8]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4d8]
mov eax, 0x50e0e0
call fcn.00406e10
test eax, eax
jle 0x50a9e2
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x50ab4a
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x50ab4a
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x50ab4a
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x50ab4a
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 - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x50ab01
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x50aad4
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.0043d6dc
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 0x50aa9a
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 0x50aa93
push 0
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x50e128
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1e8], eax
cmp dword [ebp - 0x1e8], 0
jle 0x50ae87
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1ec], eax
cmp dword [ebp - 0x1ec], 0
je 0x50aba2
mov eax, dword [ebp - 0x1ec]
sub eax, 0xa
cmp word [eax], 2
je 0x50aba2
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x1f0], 0
je 0x50abc8
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 - 0x78]
add edx, 0xa
mov ecx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0x1f4], 0
je 0x50ac12
mov eax, dword [ebp - 0x1f4]
sub eax, 0xa
cmp word [eax], 2
je 0x50ac12
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x1f8], eax
cmp dword [ebp - 0x1f8], 0
je 0x50ac38
mov eax, dword [ebp - 0x1f8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1f8], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x4dc]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4dc]
mov eax, 0x50e0b0
call fcn.00406e10
test eax, eax
jle 0x50acaf
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x4e0]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4e0]
mov eax, 0x50e0c8
call fcn.00406e10
test eax, eax
jle 0x50ace3
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x4e4]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4e4]
mov eax, 0x50e0e0
call fcn.00406e10
test eax, eax
jle 0x50ad17
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x50ae87
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x50ae87
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x50ae87
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x50ae87
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 - 0x9c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x50ae3e
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x50ae11
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.0043d6dc
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 0x50adcf
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 0x50adc8
push 0
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_SelectClipRgn
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x9c]
push eax
call sub.gdi32.dll_DeleteObject
mov edx, dword [ebp - 0x20]
mov eax, 0x50e14c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1fc], eax
cmp dword [ebp - 0x1fc], 0
jle case.0x5097fc.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x200], eax
cmp dword [ebp - 0x200], 0
je 0x50aedf
mov eax, dword [ebp - 0x200]
sub eax, 0xa
cmp word [eax], 2
je 0x50aedf
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x204], eax
cmp dword [ebp - 0x204], 0
je 0x50af05
mov eax, dword [ebp - 0x204]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e168
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
jle 0x50b1b3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 0
je 0x50af88
mov eax, dword [ebp - 0x20c]
sub eax, 0xa
cmp word [eax], 2
je 0x50af88
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
je 0x50afae
mov eax, dword [ebp - 0x210]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x28]
mov edx, 0x50e188
call fcn.004063a0
mov edx, dword [ebp - 0x20]
mov eax, 0x50e198
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
jle 0x50b117
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0
je 0x50b03e
mov eax, dword [ebp - 0x218]
sub eax, 0xa
cmp word [eax], 2
je 0x50b03e
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0
je 0x50b064
mov eax, dword [ebp - 0x21c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 3
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x50b0ae
mov eax, dword [ebp - 0x220]
sub eax, 0xa
cmp word [eax], 2
je 0x50b0ae
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
je 0x50b0d4
mov eax, dword [ebp - 0x224]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
push 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
lea eax, [ebp - 0x490]
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.00408ef8
lea eax, [ebp - 0x490]
push eax
mov eax, dword [ebp - 0x28]
mov edx, 0x50e188
call fcn.00406af0
sete al
push eax
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.00506024
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50b1ce
mov dword [ebp - 0x228], 0x1fffffff
jmp 0x50b1df
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x228], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x228]
mov dword [eax - 0x7c], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x50b209
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50b21a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.0043cfc0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
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.0043d94c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.0043cfc8
jmp case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 1
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x22a], ax
movzx eax, word [ebp - 0x22a]
mov word [ebp - 0x22c], ax
movzx eax, word [ebp - 0x22a]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x50b2f3
movzx eax, word [ebp - 0x22a]
and ax, 0xffdf
mov word [ebp - 0x22c], ax
movzx eax, word [ebp - 0x22c]
sub ax, 0x49
je 0x50b46f
sub ax, 9
jne case.0x5097fc.67
mov byte [ebp - 0x41], 1
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 4
call fcn.00406af8
xor eax, eax
mov dword [ebp - 0x88], eax
lea edx, [ebp - 0x4e8]
mov eax, dword [ebp - 0x20]
call fcn.0040c718
mov eax, dword [ebp - 0x4e8]
mov dword [ebp - 0x230], eax
mov edx, dword [ebp - 0x230]
mov eax, 0x50e1ac
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jle 0x50b40d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x238], eax
cmp dword [ebp - 0x238], 0
je 0x50b3bb
mov eax, dword [ebp - 0x238]
sub eax, 0xa
cmp word [eax], 2
je 0x50b3bb
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0
je 0x50b3e1
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, 5
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.0043cfc0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
mov ecx, dword [ebp - 0x41c]
inc ecx
mov edx, dword [ebp - 0x418]
mov eax, dword [ebp - 0x38]
call fcn.0043d8e4
mov ecx, dword [ebp - 0x41c]
inc ecx
mov edx, dword [ebp - 0x410]
mov eax, dword [ebp - 0x38]
call fcn.0043d884
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.0043cfc8
jmp case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x80], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50b4a9
mov dword [ebp - 0x240], 0x1fffffff
jmp 0x50b4ba
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x240]
mov dword [eax - 0x84], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, 0xff00000d
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xff00000e
call fcn.0043c854
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x242], ax
movzx eax, word [ebp - 0x242]
mov word [ebp - 0x244], ax
movzx eax, word [ebp - 0x242]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x50b52e
movzx eax, word [ebp - 0x242]
and ax, 0xffdf
mov word [ebp - 0x244], ax
movzx eax, word [ebp - 0x244]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x50b569
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
mov edx, eax
or dl, byte [0x50dfe0]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x4e
jne 0x50b6f7
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0
je 0x50b5c8
mov eax, dword [ebp - 0x248]
sub eax, 0xa
cmp word [eax], 2
je 0x50b5c8
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x24c], eax
cmp dword [ebp - 0x24c], 0
je 0x50b5ee
mov eax, dword [ebp - 0x24c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e1c4
call fcn.00506284
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x250], 0
je 0x50b644
mov eax, dword [ebp - 0x250]
sub eax, 0xa
cmp word [eax], 2
je 0x50b644
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0
je 0x50b66a
mov eax, dword [ebp - 0x254]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x254]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x5c], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x58]
jge case.0x5097fc.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 - 0x428], eax
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x4d
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xa0]
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 0
je 0x50b762
mov eax, dword [ebp - 0x258]
sub eax, 0xa
cmp word [eax], 2
je 0x50b762
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0
je 0x50b788
mov eax, dword [ebp - 0x25c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x4ec]
mov eax, dword [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x4ec]
mov eax, 0x50e1d4
call fcn.00406e10
mov edx, eax
add edx, 4
mov ecx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 0
je 0x50b7ef
mov eax, dword [ebp - 0x260]
sub eax, 0xa
cmp word [eax], 2
je 0x50b7ef
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 0
je 0x50b815
mov eax, dword [ebp - 0x264]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x264], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x4f0]
mov eax, dword [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x4f0]
lea eax, [ebp - 0x20]
call fcn.004063a0
mov edx, dword [ebp - 0x20]
mov eax, 0x50e1e8
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
jle 0x50b9c3
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa4]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0xa0]
jne 0x50b9c3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0
je 0x50b8ea
mov eax, dword [ebp - 0x26c]
sub eax, 0xa
cmp word [eax], 2
je 0x50b8ea
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
je 0x50b910
mov eax, dword [ebp - 0x270]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x270], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 0
je 0x50b95a
mov eax, dword [ebp - 0x274]
sub eax, 0xa
cmp word [eax], 2
je 0x50b95a
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
call fcn.0040572c
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 0
je 0x50b980
mov eax, dword [ebp - 0x278]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x278], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x278]
mov eax, dword [ebp - 0x2c]
call fcn.00406af8
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.00406af8
xor eax, eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e1fc
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0
jle 0x50ba96
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
je 0x50ba2b
mov eax, dword [ebp - 0x280]
sub eax, 0xa
cmp word [eax], 2
je 0x50ba2b
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x280], eax
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
je 0x50ba51
mov eax, dword [ebp - 0x284]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x284]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x4f4]
mov eax, dword [ebp - 0x2c]
call fcn.00506500
mov edx, dword [ebp - 0x4f4]
lea eax, [ebp - 0x2c]
call fcn.004063a0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.00403790
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e214
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jle 0x50bb59
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28c], eax
cmp dword [ebp - 0x28c], 0
je 0x50baee
mov eax, dword [ebp - 0x28c]
sub eax, 0xa
cmp word [eax], 2
je 0x50baee
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
je 0x50bb14
mov eax, dword [ebp - 0x290]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x4f8]
mov eax, dword [ebp - 0x2c]
call fcn.00506500
mov edx, dword [ebp - 0x4f8]
lea eax, [ebp - 0x2c]
call fcn.004063a0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.00403790
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x98], edx
mov eax, dword [ebp + 0x94]
xor edx, edx
mov dword [eax - 0x94], edx
lea edx, [ebp - 0x4fc]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x4fc]
mov eax, 0x50e0b0
call fcn.00406e10
test eax, eax
jle 0x50bba9
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x500]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x500]
mov eax, 0x50e0c8
call fcn.00406e10
test eax, eax
jle 0x50bca3
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
lea edx, [ebp - 0x504]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x504]
mov eax, 0x50e0e0
call fcn.00406e10
test eax, eax
jle 0x50bd9d
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00406bc8
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 - 0x4c8]
push eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.00505df0
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x4c8]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x4c4]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x98], eax
push 0x60
push 0x5a
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
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
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x418]
mov edx, dword [ebp + 0x7c]
cmp eax, dword [edx]
jle 0x50be55
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
add eax, dword [edx - 0x98]
mov edx, dword [ebp + 0x38]
sub edx, dword [ebp - 0x418]
cmp eax, edx
jle 0x50be55
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x424]
jl 0x50be55
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
add eax, dword [ebp - 0x424]
cmp eax, dword [ebp + 0x34]
jle 0x50be55
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x50be55
mov eax, dword [ebp + 0x1c]
mov byte [eax], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.0040634c
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x28], 0
je 0x50be3d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.0040634c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa0]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xa4], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x64], 0
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x94]
add eax, dword [edx - 0x98]
mov edx, dword [ebp - 0x410]
sub edx, dword [ebp - 0x418]
cmp eax, edx
jle 0x50bea0
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp - 0x418]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0x98]
jle 0x50bea0
mov byte [ebp - 0x42], 1
jmp 0x50bee7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
mov edx, dword [ebp + 0x7c]
add dword [edx], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x98]
add dword [ebp - 0x428], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x78]
cmp eax, dword [edx]
jle 0x50bee7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e230
call fcn.00406e10
test eax, eax
jle 0x50bf46
mov edx, dword [ebp - 0x20]
mov eax, 0x50e248
call fcn.00406e10
test eax, eax
jle 0x50bf1f
mov eax, dword [ebp - 0x38]
call fcn.00506a50
mov edx, dword [ebp + 0x78]
mov edx, dword [edx]
sub edx, eax
mov eax, dword [ebp + 0x60]
mov dword [eax], edx
jmp 0x50bf46
mov edx, dword [ebp - 0x20]
mov eax, 0x50e260
call fcn.00406e10
test eax, eax
jle 0x50bf46
mov eax, dword [ebp - 0x38]
call fcn.00506a50
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, 0x50e27c
call fcn.00406e10
test eax, eax
jle case.0x5097fc.67
mov eax, dword [ebp - 0x38]
call fcn.00506a50
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov eax, dword [ebp + 0x60]
xor edx, edx
mov dword [eax], edx
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x292], ax
movzx eax, word [ebp - 0x292]
mov word [ebp - 0x294], ax
movzx eax, word [ebp - 0x292]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x50bfb1
movzx eax, word [ebp - 0x292]
and ax, 0xffdf
mov word [ebp - 0x294], ax
movzx eax, word [ebp - 0x294]
sub ax, 0x49
jne 0x50c0e0
mov eax, dword [edi]
mov dword [ebp - 0x298], eax
mov edx, dword [ebp - 0x298]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x29c], eax
cmp dword [ebp - 0x29c], 0
jle case.0x5097fc.67
lea eax, [ebp - 0x508]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 2
mov eax, dword [edi]
mov edx, 2
call fcn.00406af8
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e06c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2a0], eax
cmp dword [ebp - 0x2a0], 0
jle case.0x5097fc.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0
je 0x50c072
mov eax, dword [ebp - 0x2a4]
sub eax, 0xa
cmp word [eax], 2
je 0x50c072
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0
je 0x50c098
mov eax, dword [ebp - 0x2a8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2a8], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x50c]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x50c]
lea eax, [ebp - 0x28]
call fcn.004063a0
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040d3e8
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
jmp case.0x5097fc.67
mov dword [ebp - 0x88], 0x1fffffff
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
xor edx, edx
call fcn.004063a0
mov eax, dword [edi]
mov dword [ebp - 0x2ac], eax
mov edx, dword [ebp - 0x2ac]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x2b0], 0
jle 0x50c340
lea eax, [ebp - 0x510]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e294
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2b4], eax
cmp dword [ebp - 0x2b4], 0
jle 0x50c296
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2b8], eax
cmp dword [ebp - 0x2b8], 0
je 0x50c1aa
mov eax, dword [ebp - 0x2b8]
sub eax, 0xa
cmp word [eax], 2
je 0x50c1aa
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2bc], 0
je 0x50c1d0
mov eax, dword [ebp - 0x2bc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2bc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c0], eax
cmp dword [ebp - 0x2c0], 0
je 0x50c21a
mov eax, dword [ebp - 0x2c0]
sub eax, 0xa
cmp word [eax], 2
je 0x50c21a
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0
je 0x50c240
mov eax, dword [ebp - 0x2c4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2c4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
mov edx, dword [ebp - 0x28]
call fcn.004063a0
mov edx, dword [ebp - 0x20]
mov eax, 0x50e1ac
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2c8], 0
jle 0x50c340
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2cc], eax
cmp dword [ebp - 0x2cc], 0
je 0x50c2ee
mov eax, dword [ebp - 0x2cc]
sub eax, 0xa
cmp word [eax], 2
je 0x50c2ee
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0
je 0x50c314
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, 5
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
call fcn.00506674
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 0x50c35d
mov byte [ebp - 0x42], 1
jmp 0x50c361
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 - 0x428], eax
cmp byte [ebp + 0x84], 0
jne 0x50c82f
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x50c82f
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xa8], 0
jne 0x50c5ba
cmp dword [ebp - 0x88], 0x1fffffff
je 0x50c3d6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0xac], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x88]
call fcn.0043c854
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cb18
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x50e2ac
call fcn.0043cb6c
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x85], 0
jne 0x50c481
mov eax, dword [ebp + 0x50]
test byte [eax], 1
je 0x50c446
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
mov dword [ebp - 0x2d4], eax
push 0
lea eax, [ebp - 0x428]
push eax
push 1
mov eax, 0x50e2c8
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x2d4]
push eax
call sub.user32.dll_DrawTextW
mov dword [ebp - 0x2d8], eax
jmp 0x50c580
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
mov dword [ebp - 0x2dc], eax
push 0
lea eax, [ebp - 0x428]
push eax
push 1
mov eax, 0x50e2d8
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x2dc]
push eax
call sub.user32.dll_DrawTextW
mov dword [ebp - 0x2e0], eax
jmp 0x50c580
lea edx, [ebp - 0x514]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb0]
call fcn.0040d120
mov edx, dword [ebp - 0x514]
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
mov ecx, 0x50e2e8
call fcn.00406820
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xb0]
mov eax, dword [ebp - 0x38]
call fcn.0043de8c
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x20]
mov dword [ebp - 0x2e4], eax
cmp dword [ebp - 0x2e4], 0
je 0x50c50f
mov eax, dword [ebp - 0x2e4]
sub eax, 0xa
cmp word [eax], 2
je 0x50c50f
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x20]
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
call fcn.0040572c
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x2e8], eax
cmp dword [ebp - 0x2e8], 0
je 0x50c535
mov eax, dword [ebp - 0x2e8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2e8], eax
push 0
lea eax, [ebp - 0x428]
push eax
mov eax, dword [ebp - 0x2e8]
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x20]
call fcn.004063d8
push eax
mov eax, dword [ebp - 0x2ec]
push eax
call sub.user32.dll_DrawTextW
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x20]
mov eax, dword [ebp - 0x38]
call fcn.0043dcc0
add eax, dword [ebp - 0x428]
sub eax, 0xc
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.0043cb6c
cmp dword [ebp - 0x88], 0x1fffffff
je 0x50c82f
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0xac]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
jmp 0x50c82f
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb4], 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x50e2fc
call fcn.00406af0
jne 0x50c6f6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50c601
mov dword [ebp - 0x2f0], 0x1fffffff
jmp 0x50c612
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x2f0], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x2f0]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x50c650
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50c661
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.0043d4e0
mov eax, dword [ebp - 0x428]
add eax, 8
push eax
mov eax, dword [ebp - 0x424]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x424]
add ecx, 2
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.0043d94c
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp - 0x2f4], 0x1fffffff
jne 0x50c6c6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50c6d7
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x2f4]
call fcn.0043d380
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x50c6f6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x50e318
call fcn.00406af0
jne 0x50c822
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50c72d
mov dword [ebp - 0x2f8], 0x1fffffff
jmp 0x50c73e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x2f8], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x2f8]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x50c77c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50c78d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.0043d4e0
mov eax, dword [ebp - 0x428]
add eax, 8
push eax
mov eax, dword [ebp - 0x424]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x424]
add ecx, 2
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x38]
call fcn.0043d7bc
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x2fc], 0x1fffffff
jne 0x50c7f2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50c803
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x2fc]
call fcn.0043d380
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x50c822
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
add dword [ebp - 0x428], 0xc
jmp case.0x5097fc.67
mov eax, dword [edi]
cmp word [eax + 4], 0x3e
je 0x50c867
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x50c855
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
mov edx, eax
or dl, byte [0x50dff8]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.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 0x50c8c7
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], 0x4c
jne 0x50c90d
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x50c8f0
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 1
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb0], 1
cmp word [ebp - 0xa2], 0x46
jne case.0x5097fc.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x304], eax
cmp dword [ebp - 0x304], 0
je 0x50c96c
mov eax, dword [ebp - 0x304]
sub eax, 0xa
cmp word [eax], 2
je 0x50c96c
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x304], eax
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
je 0x50c992
mov eax, dword [ebp - 0x308]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x308], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e1c4
call fcn.00506284
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x308]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30c], eax
cmp dword [ebp - 0x30c], 0
je 0x50c9e8
mov eax, dword [ebp - 0x30c]
sub eax, 0xa
cmp word [eax], 2
je 0x50c9e8
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0
je 0x50ca0e
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 - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00403790
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 - 0x428], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [ebp + 0x7c]
mov dword [edx], eax
jmp case.0x5097fc.67
mov eax, dword [edi]
mov dword [ebp - 0x314], eax
mov edx, dword [ebp - 0x314]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x318], 0
jle case.0x5097fc.67
lea eax, [ebp - 0x518]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x518]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e230
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x31c], eax
cmp dword [ebp - 0x31c], 0
jle 0x50cbda
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x320], 0
je 0x50cb37
mov eax, dword [ebp - 0x320]
sub eax, 0xa
cmp word [eax], 2
je 0x50cb37
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x320]
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0
je 0x50cb5d
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 - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x51c]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x51c]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov edx, dword [ebp - 0x28]
mov eax, 0x50e334
call fcn.00406e10
test eax, eax
jle 0x50cbaa
mov eax, dword [ebp + 0x40]
mov byte [eax], 1
jmp 0x50cbda
mov edx, dword [ebp - 0x28]
mov eax, 0x50e34c
call fcn.00406e10
test eax, eax
jle 0x50cbc3
mov eax, dword [ebp + 0x40]
mov byte [eax], 0
jmp 0x50cbda
mov edx, dword [ebp - 0x28]
mov eax, 0x50e364
call fcn.00406e10
test eax, eax
jle 0x50cbda
mov eax, dword [ebp + 0x40]
mov byte [eax], 2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp dword [eax], 0
je 0x50cc0a
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x50dff0
call fcn.00406760
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
jmp 0x50cc1c
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, 0x50e380
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x328], eax
cmp dword [ebp - 0x328], 0
jle 0x50cd5a
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
je 0x50cc74
mov eax, dword [ebp - 0x32c]
sub eax, 0xa
cmp word [eax], 2
je 0x50cc74
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x32c]
mov dword [ebp - 0x330], eax
cmp dword [ebp - 0x330], 0
je 0x50cc9a
mov eax, dword [ebp - 0x330]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x330], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x330]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x334], eax
cmp dword [ebp - 0x334], 0
je 0x50cce4
mov eax, dword [ebp - 0x334]
sub eax, 0xa
cmp word [eax], 2
je 0x50cce4
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
je 0x50cd0a
mov eax, dword [ebp - 0x338]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x338], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x338]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
call fcn.005062d8
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e14c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x33c], eax
cmp dword [ebp - 0x33c], 0
jle case.0x5097fc.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x5097fc.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 0
je 0x50cdc2
mov eax, dword [ebp - 0x340]
sub eax, 0xa
cmp word [eax], 2
je 0x50cdc2
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], 0
je 0x50cde8
mov eax, dword [ebp - 0x344]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x344], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e168
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x348], eax
cmp dword [ebp - 0x348], 0
jle 0x50ce49
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x60]
xor al, 1
mov byte [ebp - 0x349], al
jmp 0x50ce50
mov byte [ebp - 0x349], 0
cmp byte [ebp - 0x349], 0
je 0x50cf75
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0
je 0x50ce8f
mov eax, dword [ebp - 0x350]
sub eax, 0xa
cmp word [eax], 2
je 0x50ce8f
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x50ceb5
mov eax, dword [ebp - 0x354]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x354], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov ecx, dword [ebp - 0x354]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x8c], eax
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
push 0x1fffffff
mov eax, dword [ebp - 0x40c]
add eax, 2
push eax
lea eax, [ebp - 0x490]
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 - 0x414]
call fcn.00408ef8
lea eax, [ebp - 0x490]
push eax
push 1
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
call fcn.00506024
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50cfa7
mov dword [ebp - 0x358], 0x1fffffff
jmp 0x50cfb8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x358], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x358]
mov dword [eax - 0x8c], edx
cmp dword [ebp - 0x88], 0x1fffffff
jne 0x50cfe5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50cff6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
call fcn.0043d380
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.0043cfc0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x88]
call fcn.0043cfc8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x40c]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x38]
call fcn.0043d94c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc0]
call fcn.0043cfc8
jmp case.0x5097fc.67
mov eax, dword [edi]
mov dword [ebp - 0x35c], eax
mov edx, dword [ebp - 0x35c]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x360], 0
jle case.0x5097fc.67
cmp byte [ebp + 0x84], 0
jne 0x50d0d6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50d0b6
mov dword [ebp - 0x364], 0x1fffffff
jmp 0x50d0c7
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x364], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x364]
mov dword [eax - 0x7c], edx
lea eax, [ebp - 0x520]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.00406af8
mov eax, dword [ebp - 0x520]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e39c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x368], eax
cmp dword [ebp - 0x368], 0
jle 0x50d1bd
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x36c], eax
cmp dword [ebp - 0x36c], 0
je 0x50d155
mov eax, dword [ebp - 0x36c]
sub eax, 0xa
cmp word [eax], 2
je 0x50d155
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x36c], eax
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0x370], eax
cmp dword [ebp - 0x370], 0
je 0x50d17b
mov eax, dword [ebp - 0x370]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x370], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x370]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x524]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x524]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.0043cb6c
mov edx, dword [ebp - 0x20]
mov eax, 0x50e3b4
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x374], eax
cmp dword [ebp - 0x374], 0
jle 0x50d2a5
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x50d2a5
cmp byte [ebp + 0x84], 0
jne 0x50d2a5
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x378], eax
cmp dword [ebp - 0x378], 0
je 0x50d232
mov eax, dword [ebp - 0x378]
sub eax, 0xa
cmp word [eax], 2
je 0x50d232
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x378]
mov dword [ebp - 0x37c], eax
cmp dword [ebp - 0x37c], 0
je 0x50d258
mov eax, dword [ebp - 0x37c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x37c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov ecx, dword [ebp - 0x37c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.0043c854
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043c854
mov edx, dword [ebp - 0x20]
mov eax, 0x50e14c
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x380], eax
cmp dword [ebp - 0x380], 0
jle 0x50d2d8
movzx eax, byte [ebp + 0x84]
xor al, 1
mov byte [ebp - 0x381], al
jmp 0x50d2df
mov byte [ebp - 0x381], 0
cmp byte [ebp - 0x381], 0
je 0x50d3e5
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x50d3e5
cmp byte [ebp + 0x84], 0
jne 0x50d3e5
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x388], eax
cmp dword [ebp - 0x388], 0
je 0x50d33b
mov eax, dword [ebp - 0x388]
sub eax, 0xa
cmp word [eax], 2
je 0x50d33b
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x388], eax
mov eax, dword [ebp - 0x388]
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x38c], 0
je 0x50d361
mov eax, dword [ebp - 0x38c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x38c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov ecx, dword [ebp - 0x38c]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50d394
mov dword [ebp - 0x390], 0x1fffffff
jmp 0x50d3a5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x390], eax
mov edx, dword [ebp - 0x390]
mov eax, dword [ebp - 0x28]
call fcn.00506674
mov dword [ebp - 0x394], eax
cmp dword [ebp - 0x394], 0x1fffffff
jne 0x50d3d4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp 0x50d3e5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x394]
call fcn.0043d380
mov edx, dword [ebp - 0x20]
mov eax, 0x50e3d0
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x398], eax
cmp dword [ebp - 0x398], 0
jle 0x50d63b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x39c], eax
cmp dword [ebp - 0x39c], 0
je 0x50d43d
mov eax, dword [ebp - 0x39c]
sub eax, 0xa
cmp word [eax], 2
je 0x50d43d
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x39c], eax
mov eax, dword [ebp - 0x39c]
mov dword [ebp - 0x3a0], eax
cmp dword [ebp - 0x3a0], 0
je 0x50d463
mov eax, dword [ebp - 0x3a0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3a4], eax
cmp dword [ebp - 0x3a4], 0
je 0x50d4ad
mov eax, dword [ebp - 0x3a4]
sub eax, 0xa
cmp word [eax], 2
je 0x50d4ad
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x3a4], eax
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x3a8], eax
cmp dword [ebp - 0x3a8], 0
je 0x50d4d3
mov eax, dword [ebp - 0x3a8]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a8], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e3e8
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x3a8]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3ac], eax
cmp dword [ebp - 0x3ac], 0
je 0x50d527
mov eax, dword [ebp - 0x3ac]
sub eax, 0xa
cmp word [eax], 2
je 0x50d527
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x3b0], eax
cmp dword [ebp - 0x3b0], 0
je 0x50d54d
mov eax, dword [ebp - 0x3b0]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3b0], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x3b0]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x528]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x528]
mov eax, 0x50e3f8
call fcn.00406e10
test eax, eax
jle case.0x5097fc.67
lea eax, [ebp - 0x28]
mov ecx, 0xa
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x52c]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x52c]
mov eax, 0x50e41c
call fcn.00406e10
test eax, eax
jle case.0x5097fc.67
lea eax, [ebp - 0x534]
push eax
lea edx, [ebp - 0x538]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x538]
mov eax, 0x50e41c
call fcn.00406e10
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.0040cccc
mov edx, dword [ebp - 0x530]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov eax, dword [ebp - 0x28]
call fcn.005062d8
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cbe4
jmp case.0x5097fc.67
mov edx, dword [ebp - 0x20]
mov eax, 0x50e430
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3b4], eax
cmp dword [ebp - 0x3b4], 0
jle case.0x5097fc.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3b8], eax
cmp dword [ebp - 0x3b8], 0
je 0x50d693
mov eax, dword [ebp - 0x3b8]
sub eax, 0xa
cmp word [eax], 2
je 0x50d693
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x3b8], eax
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x3bc], eax
cmp dword [ebp - 0x3bc], 0
je 0x50d6b9
mov eax, dword [ebp - 0x3bc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3bc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov ecx, dword [ebp - 0x3bc]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x53c]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x53c]
lea eax, [ebp - 0x28]
call fcn.004063a0
mov eax, dword [ebp - 0x28]
call fcn.005062d8
cmp eax, 5
ja case.0x50d6fe.0
jmp dword [eax*4 + 0x50d705]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 8
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xa
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xc
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xe
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x10
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x28]
call fcn.005062d8
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cbe4
jmp case.0x5097fc.67
mov eax, dword [edi]
movzx eax, word [eax + 4]
mov word [ebp - 0x3be], ax
movzx eax, word [ebp - 0x3be]
mov word [ebp - 0x3c0], ax
movzx eax, word [ebp - 0x3be]
add eax, 0xffffff9f
sub ax, 0x1a
jae 0x50d7dd
movzx eax, word [ebp - 0x3be]
and ax, 0xffdf
mov word [ebp - 0x3c0], ax
movzx eax, word [ebp - 0x3c0]
mov word [ebp - 0xa2], ax
cmp word [ebp - 0xa2], 0x3e
jne 0x50d818
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
mov edx, eax
or dl, byte [0x50dfdc]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x54
jne 0x50d845
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc04
mov edx, eax
or dl, byte [0x50dfdc]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.0043cc10
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x48
jne 0x50d85e
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 1
jmp case.0x5097fc.67
cmp word [ebp - 0xa2], 0x50
jne 0x50db2a
mov eax, dword [edi]
mov dword [ebp - 0x3c4], eax
mov edx, dword [ebp - 0x3c4]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
jle case.0x5097fc.67
lea eax, [ebp - 0x540]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [edi]
mov edx, 6
call fcn.00406af8
mov eax, dword [ebp - 0x540]
lea edx, [ebp - 0x20]
call fcn.0040c718
mov edx, dword [ebp - 0x20]
mov eax, 0x50e3d0
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3cc], eax
cmp dword [ebp - 0x3cc], 0
jle case.0x5097fc.67
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0
je 0x50d91c
mov eax, dword [ebp - 0x3d0]
sub eax, 0xa
cmp word [eax], 2
je 0x50d91c
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x3d0], eax
mov eax, dword [ebp - 0x3d0]
mov dword [ebp - 0x3d4], eax
cmp dword [ebp - 0x3d4], 0
je 0x50d942
mov eax, dword [ebp - 0x3d4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3d4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov ecx, dword [ebp - 0x3d4]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3d8], eax
cmp dword [ebp - 0x3d8], 0
je 0x50d98c
mov eax, dword [ebp - 0x3d8]
sub eax, 0xa
cmp word [eax], 2
je 0x50d98c
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x3dc], eax
cmp dword [ebp - 0x3dc], 0
je 0x50d9b2
mov eax, dword [ebp - 0x3dc]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3dc], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e3e8
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x3dc]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3e0], eax
cmp dword [ebp - 0x3e0], 0
je 0x50da06
mov eax, dword [ebp - 0x3e0]
sub eax, 0xa
cmp word [eax], 2
je 0x50da06
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
call fcn.0040572c
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x3e0]
mov dword [ebp - 0x3e4], eax
cmp dword [ebp - 0x3e4], 0
je 0x50da2c
mov eax, dword [ebp - 0x3e4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3e4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x50e118
call fcn.00406e10
mov edx, eax
inc edx
mov ecx, dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x28]
call fcn.00406af8
lea edx, [ebp - 0x544]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x544]
mov eax, 0x50e448
call fcn.00406e10
test eax, eax
jle case.0x5097fc.67
lea eax, [ebp - 0x28]
mov ecx, 0x11
mov edx, 1
call fcn.00406bc8
lea edx, [ebp - 0x548]
mov eax, dword [ebp - 0x28]
call fcn.0040c718
mov edx, dword [ebp - 0x548]
mov eax, 0x50e478
call fcn.00406e10
dec eax
jne case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d4d8
cmp al, 1
jne 0x50dac6
mov dword [ebp - 0x3e8], 0x1fffffff
jmp 0x50dad7
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.0043d378
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x3e8]
mov dword [eax - 0x7c], edx
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.005061cc
mov dword [ebp - 0x3ec], eax
cmp dword [ebp - 0x3ec], 0x1fffffff
jne 0x50db14
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.0043d4e0
jmp case.0x5097fc.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x3ec]
call fcn.0043d380
jmp case.0x5097fc.67
mov edx, dword [edi]
mov eax, 0x50e488
call fcn.00506284
dec eax
jne 0x50db48
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 1
jmp case.0x5097fc.67
mov edx, dword [edi]
mov eax, 0x50e4a0
call fcn.00506284
dec eax
jne case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 1
jmp case.0x5097fc.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [edi]
mov eax, 0x50df34
call fcn.00406e10
mov ecx, eax
dec ecx
mov eax, dword [edi]
mov edx, 3
call fcn.00406af8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3f0], eax
cmp dword [ebp - 0x3f0], 0
je 0x50dbbb
mov eax, dword [ebp - 0x3f0]
sub eax, 0xa
cmp word [eax], 2
je 0x50dbbb
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0040572c
mov dword [ebp - 0x3f0], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3f4], eax
cmp dword [ebp - 0x3f4], 0
je 0x50dbe1
mov eax, dword [ebp - 0x3f4]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x3f4], eax
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x50e4b8
call fcn.00506284
mov edx, eax
add edx, 2
mov ecx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x20]
call fcn.00406af8
lea edx, [ebp - 0x54c]
mov eax, dword [ebp - 0x28]
call fcn.00506500
mov edx, dword [ebp - 0x54c]
lea eax, [ebp - 0x28]
call fcn.004063a0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00403790
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x94]
push eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
call fcn.00506adc
pop ecx
jmp case.0x5097fc.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 1
cmp dword [ebp - 0x10], 0
je 0x50dc69
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004063a0
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004063a0
mov eax, dword [edi]
mov dword [ebp - 0x3f8], eax
mov edx, dword [ebp - 0x3f8]
mov eax, 0x50df34
call fcn.00406e10
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3fc], eax
cmp dword [ebp - 0x3fc], 0
jle 0x50dca4
movzx eax, byte [ebp - 0x42]
xor al, 1
mov byte [ebp - 0x3fd], al
jmp 0x50dcab
mov byte [ebp - 0x3fd], 0
cmp byte [ebp - 0x3fd], 0
je 0x50dd0d
lea eax, [ebp - 0x550]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00406af8
mov edx, dword [ebp - 0x550]
lea eax, [ebp - 0x1c]
call fcn.00406760
lea eax, [ebp - 0x554]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00406af8
mov edx, dword [ebp - 0x554]
lea eax, [ebp - 0x14]
call fcn.00406760
mov eax, edi
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00406bc8
jmp 0x50dd7a
cmp byte [ebp - 0x42], 0
jne 0x50dd7a
mov eax, dword [edi]
mov dword [ebp - 0x404], eax
cmp dword [ebp - 0x404], 0
je 0x50dd42
mov eax, dword [ebp - 0x404]
sub eax, 0xa
cmp word [eax], 2
je 0x50dd42
mov edx, dword [edi]
mov eax, edi
call fcn.0040572c
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x404]
mov dword [ebp - 0x408], eax
cmp dword [ebp - 0x408], 0
je 0x50dd68
mov eax, dword [ebp - 0x408]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x408], eax
mov eax, edi
mov ecx, dword [ebp - 0x408]
mov edx, 1
call fcn.00406bc8
mov eax, edi
call fcn.0040573c
call fcn.004066bc
test eax, eax
jle 0x50dd9a
cmp byte [ebp - 0x41], 0
jne 0x50dd9a
cmp byte [ebp - 0x42], 0
je 0x506e3c
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0xfffffffe
jne 0x50ddbf
mov eax, dword [ebp + 0x4c]
cmp dword [eax], 0
jle 0x50ddbf
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 0x50deb0
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 0x50de0d
cmp byte [ebp + 0x80], 0
je 0x50de0d
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0xb0]
jle 0x50ddf7
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 0x50de0d
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 0x50de24
mov eax, dword [ebp + 0x7c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x50dea5
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 0x50dea5
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x50dea5
cmp byte [ebp + 0x84], 0
jne 0x50dea5
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x428]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x41c]
mov dword [eax - 0x68], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x74]
mov eax, dword [ebp - 0x38]
call fcn.0043d788
mov eax, dword [ebp - 0x418]
inc eax
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x74], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x68]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x70], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
call fcn.0040634c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50df0d
lea eax, [ebp - 0x554]
mov edx, 0x23
call fcn.00406344
lea eax, [ebp - 0x4c0]
mov edx, 0xb
call fcn.00406344
lea eax, [ebp - 0x494]
call fcn.0040633c
lea eax, [ebp - 0x480]
mov edx, 3
call fcn.00406344
lea eax, [ebp - 0x34]
mov edx, 0xd
call fcn.00406344
ret