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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x64
push 0
push 0
dec ecx
jne 0x444ae9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x90]
lea edi, [ebp - 0x1ec]
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 ebx, edx
mov dword [ebp - 0x38], eax
mov edi, dword [ebp + 0x4c]
xor eax, eax
push ebp
push 0x44a84d
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xd8], 0xffffffff
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
sub dword [ebp - 0x1e0], eax
push edi
lea esi, [ebp - 0x1ec]
lea edi, [ebp - 0x21c]
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 0x444b95
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax]
add dword [ebp - 0x1ec], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 4]
add dword [ebp - 0x1e8], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 8]
sub dword [ebp - 0x1e4], eax
mov eax, dword [ebp + 0x8c]
mov eax, dword [eax + 0xc]
sub dword [ebp - 0x1e0], eax
mov eax, dword [ebp + 0x44]
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 8]
xor edx, edx
call fcn.004012b8
lea eax, [ebp - 0x30]
xor edx, edx
call fcn.004012c0
xor eax, eax
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xd1], 0
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax]
mov byte [ebp - 0xd3], 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 - 0x230]
xor ecx, ecx
mov edx, 0x14
call fcn.00401070
mov dword [ebp - 0x230], 0x14
mov dword [ebp - 0x70], 0xffffffff
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x42], 0
mov byte [ebp - 0xad], 1
mov byte [ebp - 0xae], 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.004012c0
xor eax, eax
mov dword [edi], eax
mov byte [ebp - 0xbc], 0
movzx eax, byte [ebp + 0x80]
mov byte [ebp - 0xbd], al
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x444c69
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 2
jae 0x444c69
mov byte [ebp - 0xbc], 1
mov byte [ebp + 0x80], 0
push edi
lea esi, [ebp - 0x1ec]
lea edi, [ebp - 0x1fc]
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.004012c0
lea eax, [ebp - 0x18]
xor edx, edx
call fcn.004012c0
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004012c0
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
mov dword [ebp - 0xb8], 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 0x444cd8
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x1fc], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x29], 0
je 0x444d8c
cmp byte [ebp + 0x84], 0
jne 0x444d8c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00407340
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x444d21
mov dword [ebp - 0xdc], 0x1fffffff
jmp 0x444d32
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xdc]
call fcn.00407348
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 - 0x1e8]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x38]
call fcn.00407408
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc4]
call fcn.00407348
mov byte [ebp - 0xbb], 1
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
jmp 0x44a6c7
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0xc]
mov byte [ebp - 0xbe], al
inc dword [edi]
mov eax, dword [ebp - 0x38]
call fcn.004449d0
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x38]
call fcn.004449fc
mov dword [ebp - 0x4c], eax
mov edx, dword [ebx]
mov eax, 0x44a86c
call fcn.00401378
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jle 0x444e10
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [ebx]
mov edx, 1
call fcn.00401350
jmp 0x444e1a
lea eax, [ebp - 0x10]
mov edx, dword [ebx]
call fcn.004012c0
lea eax, [ebp - 0x10]
call fcn.00401220
call fcn.00401320
mov esi, eax
test esi, esi
jle 0x444fae
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x44a87c
mov dword [ebp - 0x23c], eax
mov eax, 0x44a86c
mov dword [ebp - 0x238], eax
mov eax, 0x44a88c
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x23c]
push eax
mov eax, 0x44a89c
mov dword [ebp - 0x248], eax
mov eax, 0x44a8b8
mov dword [ebp - 0x244], eax
mov eax, 0x44a8d0
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x248]
mov edx, 2
pop ecx
call fcn.004447b0
lea eax, [ebp - 0x10]
call fcn.00401220
call fcn.00401320
mov esi, eax
cmp dword [ebp - 0xd8], 0
jl 0x444ecf
test esi, esi
jle 0x444ecf
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
jne 0x444ecf
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x444f17
cmp dword [ebp - 0xac], 0
jne 0x444f17
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jle 0x444f17
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00406910
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x444f17
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.0044e1fc
mov dword [ebp - 0xac], eax
cmp byte [ebp + 0x84], 0
jne 0x444f57
push esi
push edi
lea esi, [ebp - 0x1fc]
lea edi, [ebp - 0x20c]
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
pop esi
cmp byte [ebp - 0xbb], 0
jne 0x444f94
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x204], eax
jmp 0x444f94
push esi
push edi
lea esi, [ebp - 0x1ec]
lea edi, [ebp - 0x20c]
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
pop esi
cmp byte [ebp - 0xbb], 0
jne 0x444f94
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x204], eax
add dword [ebp - 0x208], 0x2710
mov eax, dword [ebp - 0x208]
add eax, dword [ebp - 0x50]
dec eax
mov dword [ebp - 0x200], eax
cmp byte [ebp + 0x88], 0
jne 0x444fd2
cmp dword [ebp - 0xd8], 0
jl 0x444fca
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
jle 0x444fd2
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x444fe4
test esi, esi
jle 0x444fe4
xor eax, eax
mov dword [ebp - 0x7c], eax
mov byte [ebp - 0x41], 0
jmp 0x445154
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x445029
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x445029
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp + 0x88], 0
jne 0x44501b
test esi, esi
jle 0x44501b
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x44501b
cmp byte [ebp - 0xbd], 0
jne 0x44501f
xor eax, eax
jmp 0x445021
mov al, 1
mov byte [ebp - 0x41], al
jmp 0x445154
cmp byte [ebp + 0x80], 0
je 0x44514f
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
setne al
or al, byte [ebp + 0x84]
je 0x44514f
test esi, esi
jle 0x4450c3
xor eax, eax
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x230]
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 + 0x4ac384]
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 - 0x20c]
push eax
push esi
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
jne 0x4450e8
mov dword [ebp - 0x7c], esi
jmp 0x4450e8
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp - 0xbb], 0
je 0x4450e8
mov eax, dword [ebp + 0x78]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp + 0x88], 0
jne 0x4450e8
mov eax, dword [ebp + 0x74]
xor edx, edx
mov dword [eax], edx
test esi, esi
jle 0x4450f1
cmp esi, dword [ebp - 0x7c]
jg 0x4450f5
xor eax, eax
jmp 0x4450f7
mov al, 1
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x445154
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x445154
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x445154
cmp byte [ebp + 0x80], 0
je 0x445154
cmp byte [ebp - 0xd1], 0
jne 0x445154
cmp dword [edi], 1
jle 0x445154
mov byte [ebp - 0xad], 1
dec dword [edi]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xd0]
mov dword [eax + 0x18], edx
jmp 0x44a6e7
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x78], 0
jle 0x44517e
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jg 0x445168
cmp dword [ebp - 0x7c], 0
jne 0x44517e
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [ebx]
mov edx, 1
call fcn.00401350
jmp 0x4451a3
cmp dword [ebp - 0x7c], 0
jle 0x445199
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x7c]
mov edx, 1
call fcn.00401350
jmp 0x4451a3
lea eax, [ebp - 0x10]
mov edx, dword [ebx]
call fcn.004012c0
lea eax, [ebp - 0x10]
call fcn.00401220
call fcn.00401320
mov esi, eax
test esi, esi
jle 0x445216
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, 0x44a87c
mov dword [ebp - 0x23c], eax
mov eax, 0x44a86c
mov dword [ebp - 0x238], eax
mov eax, 0x44a88c
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x23c]
push eax
mov eax, 0x44a89c
mov dword [ebp - 0x248], eax
mov eax, 0x44a8b8
mov dword [ebp - 0x244], eax
mov eax, 0x44a8d0
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x248]
mov edx, 2
pop ecx
call fcn.004447b0
lea eax, [ebp - 0x10]
call fcn.00401220
call fcn.00401320
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jne 0x445234
dec dword [edi]
mov eax, dword [ebp - 0x10]
mov edx, 0x44a8e8
call fcn.00401348
jne 0x445268
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.004012c0
mov eax, ebx
mov ecx, 1
mov edx, 1
call fcn.00401358
xor eax, eax
mov dword [ebp - 0xa0], eax
xor esi, esi
test esi, esi
jle 0x445350
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x445350
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
jl 0x445350
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x4452a9
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x4452a9
cmp byte [ebp - 0xbd], 0
jne 0x445322
cmp dword [ebp - 0xac], 0
je 0x4452be
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
jne 0x445322
mov eax, ebx
mov ecx, esi
mov edx, 1
call fcn.00401358
lea eax, [ebp - 0x14]
mov edx, 0x44a8e8
call fcn.00401330
xor esi, esi
cmp dword [ebp - 0xac], 0
je 0x4452ee
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 1
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
mov edx, dword [edx]
inc edx
cmp eax, edx
je 0x445322
movzx eax, byte [ebp - 0xbd]
xor al, 1
and al, byte [ebp - 0xd1]
je 0x445322
cmp dword [ebp - 0xd8], 0
jl 0x445322
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
jle 0x445322
mov byte [ebp - 0x41], 1
cmp byte [ebp - 0x41], 0
je 0x445350
mov byte [ebp - 0xad], 1
dec dword [edi]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xd0]
mov dword [eax + 0x18], edx
jmp 0x44a6e7
test esi, esi
jle 0x44697c
mov byte [ebp - 0xbb], 0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x445385
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x445385
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 0x4453ab
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
shr edx, 2
cmp eax, edx
jge 0x4453ab
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 - 0xb4], eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x50]
jge 0x4453c8
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 - 0xb8], eax
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x4c]
jge 0x4453e5
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x445408
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov edx, dword [edx]
call fcn.004012c0
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
call fcn.00401330
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.004012c0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x10]
call fcn.00401330
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
lea eax, [ebp - 8]
xor edx, edx
call fcn.004012c0
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
je 0x445459
mov eax, ebx
mov ecx, esi
mov edx, 1
call fcn.00401358
mov byte [ebp - 0xad], 1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x44697c
cmp byte [ebp + 0x84], 0
jne 0x445bdb
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x36], 0
je 0x445494
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
sub dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x35], 0
je 0x4454ab
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
add dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x60]
mov eax, dword [eax]
sub dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x1f0]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x1f0], edx
mov eax, dword [ebp + 0x94]
push esi
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x1fc]
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
pop esi
push esi
push edi
lea esi, [ebp - 0x1fc]
lea edi, [ebp - 0x20c]
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
pop esi
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0xba], 1
mov byte [ebp - 0xb9], 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 + 0x4ac384]
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 - 0xa0]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
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 0x4455bf
mov byte [ebp - 0xba], 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
cmp eax, dword [ebp - 0x1f4]
jg 0x4455ae
mov byte [ebp - 0xbe], 0
jmp 0x4455bf
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb9], 1
mov eax, dword [ebp + 0x94]
push esi
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x1fc]
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
pop esi
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.004012c0
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x1fc]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
cmp byte [ebp - 0xba], 0
je 0x445648
cmp byte [ebp + 0x80], 0
jne 0x445648
mov eax, dword [ebp - 0x1f4]
cmp eax, dword [ebp - 0x204]
jle 0x445648
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb9], 1
mov eax, dword [ebp - 0x1f4]
sub eax, dword [ebp - 0x1fc]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
cmp eax, dword [ebp - 0x1e4]
jge 0x445a40
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x39], 0
je 0x4457b5
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.00401efc
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
cmp byte [ebp - 0xbe], 0
jne 0x4456dd
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0xc], 0
sete al
and al, byte [ebp - 0xb9]
je 0x445741
cmp dword [ebp - 0xd8], 0
jl 0x445741
mov eax, dword [edi]
mov edx, dword [ebp - 0xd8]
dec edx
cmp eax, edx
jg 0x445741
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
and eax, 0xfffffeff
movzx edx, byte [ebp - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
jmp 0x44578d
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
or eax, 0x100
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp + 0x94]
push esi
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x20c]
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
pop esi
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x90]
call fcn.004072d8
cmp dword [ebp - 0xd8], 0
jl 0x4459f2
mov eax, dword [edi]
mov edx, dword [ebp - 0xd8]
dec edx
cmp eax, edx
jg 0x4459f2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 8]
jle 0x4457f9
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 0x94]
mov dword [edx - 8], eax
cmp byte [ebp - 0xbe], 0
jne 0x4458bf
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
movzx edx, byte [ebp - 0xb9]
xor dl, 1
and edx, 0x7f
or eax, dword [edx*4 + 0x4ac37c]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
cmp eax, dword [ebp - 0xa4]
jge 0x445885
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa4]
call fcn.00407170
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0x1f4], eax
jmp 0x445a6a
lea eax, [ebp - 0xc]
mov edx, 0x44a8f8
call fcn.00401330
mov eax, dword [ebp - 0xc]
call fcn.004012c8
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 - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp - 0x10]
call fcn.004012c8
mov edx, dword [ebp - 0x40]
call fcn.00407030
test eax, eax
je 0x445a6a
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
mov byte [ebp - 0xb9], 1
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004012e0
lea eax, [ebp - 0xc]
call fcn.00401220
call fcn.00401320
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xa4], 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 - 0xa0]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa4]
call fcn.00407170
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0x1f4], eax
jmp 0x445a6a
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0xfffffdff
movzx edx, byte [ebp - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
or eax, 0x100
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
jmp 0x445a6a
cmp dword [ebp - 0xd8], 0
jl 0x445a6a
mov eax, dword [edi]
mov edx, dword [ebp - 0xd8]
dec edx
cmp eax, edx
jg 0x445a6a
xor eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa4]
add dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x445ab3
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x445ab3
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 0x445ab3
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x40]
call fcn.004012b8
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x41], 0
je 0x445b7a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 0xff
call fcn.00407348
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.00407368
mov eax, dword [ebp - 0x1fc]
sar eax, 1
jns 0x445af0
adc eax, 0
add eax, eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
and eax, 0x80000003
jns 0x445b0a
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x445b17
mov dword [ebp - 0x80], 2
jmp 0x445b1c
xor eax, eax
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x1e0]
add ecx, dword [ebp - 0x80]
dec ecx
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x38]
call fcn.004073f8
jmp 0x445b6c
cmp dword [ebp - 0x80], 2
jne 0x445b43
xor eax, eax
mov dword [ebp - 0x80], eax
jmp 0x445b4a
mov dword [ebp - 0x80], 2
mov ecx, dword [ebp - 0x1e0]
add ecx, dword [ebp - 0x80]
dec ecx
mov edx, dword [ebp - 0x84]
add edx, 2
mov eax, dword [ebp - 0x38]
call fcn.004073e8
add dword [ebp - 0x84], 2
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x1f4]
jl 0x445b36
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
je 0x445ba9
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1f4], eax
jmp 0x445bbe
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x1f4]
add eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1f8], eax
jmp 0x4467c1
cmp byte [ebp + 0x88], 0
jne 0x445c76
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x445bfe
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jl 0x445c76
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle 0x445c76
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
jne 0x445c76
cmp dword [ebp - 0xac], 0
je 0x445c3c
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x445c3c
cmp dword [edi], 1
jle 0x445c3c
mov eax, dword [edi]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x44a7f7
lea eax, [ebp - 8]
mov edx, 0x44a918
call fcn.004012c0
cmp byte [ebp - 0xbe], 1
je 0x445c64
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00401330
add dword [ebp - 0xa0], 3
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
movzx eax, byte [eax]
mov byte [ebp - 0xd1], al
push esi
push edi
lea esi, [ebp - 0x1ec]
lea edi, [ebp - 0x1fc]
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
pop esi
mov eax, dword [ebp - 0x1fc]
cmp eax, dword [ebp - 0x1f4]
jle 0x445ca4
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x1f4], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
lea eax, [ebp - 0x1fc]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
xor eax, eax
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x445d1d
cmp dword [ebp - 0x10], 0
je 0x445d1d
lea eax, [ebp - 0x10]
call fcn.00401220
call fcn.00401320
push eax
lea eax, [ebp - 0x10]
call fcn.00401220
pop edx
cmp word [eax + edx*2 - 2], 0x20
jne 0x445d1d
mov edx, 0x44a87c
mov eax, dword [ebp - 0x38]
call fcn.00407430
mov dword [ebp - 0x48], eax
cmp byte [ebp + 0x88], 0
je 0x445ead
mov eax, dword [ebp - 0x1f4]
sub eax, dword [ebp - 0x1fc]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x204]
sub edx, dword [ebp - 0x20c]
cmp eax, edx
jle 0x445ead
cmp byte [ebp - 0xbe], 0
jne 0x445d7f
mov eax, dword [ebp - 0x204]
sub eax, dword [ebp - 0x20c]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0x1f4], eax
jmp 0x445ead
lea eax, [ebp - 0xc]
mov ecx, 0x44a8f8
mov edx, dword [ebp - 0x10]
call fcn.00401338
mov eax, dword [ebp - 0xc]
call fcn.004012c8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x94]
push esi
push edi
lea edi, [eax - 0x10]
lea esi, [ebp - 0x20c]
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
pop esi
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 - 0xbe]
or eax, dword [edx*4 + 0x4ac38c]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp - 0x10]
call fcn.004012c8
mov edx, dword [ebp - 0x40]
call fcn.00407030
test eax, eax
je 0x445ead
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x40]
call fcn.004012e0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 8]
mov edx, dword [ebp + 0x94]
sub eax, dword [edx - 0x10]
mov dword [ebp - 0xa4], eax
push 0
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
or eax, 0x400
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xfffffff0
push eax
lea eax, [ebp - 0xc]
call fcn.00401220
call fcn.00401320
push eax
mov eax, dword [ebp - 0xc]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 8]
mov eax, dword [ebp + 0x94]
sub edx, dword [eax - 0x10]
mov eax, dword [ebp - 0xa4]
call fcn.00407170
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x1fc]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f8]
jl 0x445f32
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f0]
jge 0x445f32
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x38]
jge 0x445f32
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 - 0xa0]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call sub.gdi32.dll_GetTextExtentExPointW
mov eax, dword [ebp + 0x94]
cmp esi, dword [eax - 0x14]
jne 0x445f20
mov eax, dword [ebp + 0x94]
add dword [eax - 0x48], esi
jmp 0x445f32
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x14]
mov edx, dword [ebp + 0x94]
add dword [edx - 0x48], eax
mov eax, dword [ebp - 0x1f4]
sub eax, dword [ebp - 0x1fc]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jge 0x445f55
xor eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa4]
add dword [eax], edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x34]
and eax, 0x20000
cmp eax, 0x20000
jne 0x445f89
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x5c], eax
jmp 0x445f95
mov eax, dword [ebp + 0x38]
sub eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x24]
movzx eax, byte [eax]
and al, byte [ebp + 0x88]
je 0x446132
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0x1f0]
sub edx, dword [eax]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x1f0], edx
mov eax, dword [ebp - 0x1f0]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
sub eax, dword [ebp - 0xa4]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
mov edx, dword [ebp + 0x30]
cmp eax, dword [edx + 8]
jne 0x446013
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1fc]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f4]
mov dword [eax + 8], edx
jmp 0x446045
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1fc]
jle 0x44602b
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1fc]
mov dword [eax], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
cmp eax, dword [ebp - 0x1f4]
jge 0x446045
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f4]
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 0x44606d
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f8]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 0xc], edx
jmp 0x4460a1
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x1f8]
jle 0x446087
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f8]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebp - 0x1f0]
jge 0x4460a1
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x1fc]
jl 0x446107
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp - 0x1f4]
jg 0x446107
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f8]
jl 0x446107
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f0]
jge 0x446107
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.004012b8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.004012b8
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x446132
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x1c]
push esi
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
pop esi
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 0x44617a
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e4]
jle 0x44617a
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
je 0x44617a
cmp dword [ebp - 8], 0
je 0x446176
cmp dword [ebp - 0xac], 0
je 0x44617a
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x44617a
xor eax, eax
jmp 0x44617c
mov al, 1
mov byte [ebp - 0xad], al
movzx eax, byte [ebp - 0xad]
mov byte [ebp - 0xae], al
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x44622f
cmp byte [ebp - 0xad], 0
je 0x4461d3
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e4]
jg 0x4461c0
cmp dword [ebp - 8], 0
je 0x44622f
cmp byte [ebp - 0xd1], 0
jne 0x4461d3
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
jge 0x44622f
cmp dword [ebp - 0xac], 0
je 0x44622f
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 1
cmp byte [ebp + 0x80], 0
je 0x4461fe
cmp byte [ebp - 0x41], 0
jne 0x44622f
cmp dword [ebp - 0xd8], 0
jl 0x44622f
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x44622f
mov eax, dword [ebp - 0x214]
sub eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0xa4]
jl 0x446228
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 0
mov byte [ebp - 0xad], 1
movzx eax, byte [ebp - 0xad]
xor al, 1
and al, byte [ebp + 0x80]
je 0x44625a
cmp dword [ebp - 0xd8], 0
jl 0x44625a
mov eax, dword [edi]
cmp eax, dword [ebp - 0xd8]
jg 0x44625a
mov byte [ebp - 0xad], 1
cmp byte [ebp - 0xd1], 0
je 0x446275
cmp byte [ebp - 0xad], 0
jne 0x446275
cmp dword [edi], 1
jg 0x44635e
cmp byte [ebp - 0xd3], 0
jne 0x4462b5
cmp byte [ebp - 0xd1], 0
jne 0x4462b5
cmp byte [ebp - 0xad], 0
jne 0x4462b5
cmp byte [ebp + 0x80], 0
jne 0x4462b5
cmp byte [ebp - 0xbc], 0
jne 0x4462b5
cmp byte [ebp - 0x41], 0
jne 0x4462b5
cmp byte [ebp - 0xbe], 0
jne 0x44635e
mov eax, dword [edi]
mov edx, dword [ebp + 0x44]
cmp eax, dword [edx]
jge 0x446309
cmp byte [ebp - 0xd3], 0
jne 0x446309
cmp byte [ebp - 0xd1], 0
jne 0x4462d9
mov eax, dword [ebp + 0x48]
mov eax, dword [eax]
cmp eax, dword [edi]
jne 0x446309
cmp byte [ebp - 0xad], 0
je 0x446309
cmp dword [ebp - 8], 0
je 0x446309
cmp byte [ebp + 0x80], 0
jne 0x446309
cmp byte [ebp - 0xbc], 0
jne 0x446309
cmp byte [ebp - 0x41], 0
jne 0x446309
cmp byte [ebp - 0xbe], 0
jne 0x44635e
mov eax, dword [edi]
mov edx, dword [ebp - 0xd8]
dec edx
cmp eax, edx
sete al
and al, byte [ebp + 0x80]
je 0x4464c0
cmp byte [ebp - 0x41], 0
jne 0x4464c0
cmp byte [ebp - 0xbe], 0
je 0x4464c0
cmp byte [ebp - 0xad], 0
je 0x4464c0
cmp byte [ebp - 0xae], 0
jne 0x4464c0
cmp dword [ebp - 8], 0
jne 0x4464c0
lea eax, [ebp - 0x24c]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00401350
lea eax, [ebp - 0x24c]
mov edx, 0x44a918
call fcn.00401330
mov edx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x38]
call fcn.00407430
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
sub eax, dword [ebp - 0xa4]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x1e4]
jle 0x4464b7
cmp byte [ebp - 0xbd], 0
je 0x4463cf
cmp dword [edi], 0
jg 0x4463d3
xor eax, eax
jmp 0x4463d5
mov al, 1
mov byte [ebp - 0x41], al
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x38], 1
cmp byte [ebp - 0xd1], 0
je 0x44640b
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x44640b
cmp dword [edi], 0
jle 0x44640b
mov eax, dword [edi]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x44a7f7
cmp dword [edi], 1
jle 0x446442
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je 0x446442
cmp byte [ebp - 0xd1], 0
jne 0x446442
mov eax, dword [ebp + 0x48]
cmp dword [eax], 1
jle 0x446442
mov eax, dword [edi]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x44a7f7
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
jne 0x44648f
cmp byte [ebp - 0xd3], 0
jne 0x44648f
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x446477
cmp byte [ebp + 0x80], 0
je 0x446477
mov eax, dword [edi]
mov edx, dword [ebp - 0xd8]
dec edx
cmp eax, edx
jne 0x44648f
cmp dword [edi], 1
jle 0x44648f
mov eax, dword [edi]
dec eax
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x44a7f7
cmp byte [ebp - 0xd3], 0
jne 0x4464d5
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x4464a9
cmp byte [ebp + 0x80], 0
jne 0x4464d5
cmp dword [edi], 1
jne 0x4464d5
mov byte [ebp - 0xad], 1
jmp 0x4464d5
mov byte [ebp - 0xad], 1
jmp 0x4464d5
movzx eax, byte [ebp + 0x80]
xor al, 1
or al, byte [ebp - 0xad]
mov byte [ebp - 0xad], al
cmp byte [ebp - 0xad], 0
jne 0x4466d2
cmp byte [ebp + 0x80], 0
je 0x4466d2
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 + 0x4ac384]
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 - 0x20c]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401bcc
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x208]
cmp eax, dword [ebp - 0x50]
setle byte [ebp - 0xad]
cmp byte [ebp - 0xad], 0
je 0x44659f
mov eax, dword [ebp - 0x1e4]
cmp eax, dword [ebp - 0x20c]
jle 0x44658e
mov eax, dword [ebp - 0x1e4]
cmp eax, dword [ebp - 0x204]
jge 0x446597
cmp dword [edi], 1
je 0x446597
xor eax, eax
jmp 0x446599
mov al, 1
mov byte [ebp - 0xad], al
cmp byte [ebp - 0xad], 0
jne 0x446742
cmp byte [ebp - 0xbe], 0
je 0x446742
mov eax, dword [ebp - 0x1e8]
add eax, dword [ebp - 0xb4]
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 0x446742
lea eax, [ebp - 0x250]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00401350
lea eax, [ebp - 0x250]
mov edx, 0x44a918
call fcn.00401330
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x38]
call fcn.00407430
mov edx, dword [ebp + 0x7c]
mov edx, dword [edx]
sub edx, dword [ebp - 0xa4]
add edx, dword [ebp - 0x1ec]
add edx, dword [ebp + 0x10]
add eax, edx
cmp eax, dword [ebp - 0x1e4]
jle 0x446659
cmp dword [ebp - 0xac], 0
je 0x446742
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x446742
mov byte [ebp - 0xad], 1
cmp byte [ebp - 0x41], 0
jne 0x446742
cmp byte [ebp - 0xae], 0
jne 0x446742
cmp dword [ebp - 0xac], 0
je 0x446742
cmp dword [ebp - 0xd8], 0
jge 0x446742
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x446742
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp + 0x8c]
mov edx, dword [ebp - 0xa4]
add dword [eax + 8], edx
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
jge 0x44a7f7
mov eax, dword [edi]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x44a7f7
cmp byte [ebp + 0x88], 0
jne 0x446742
cmp byte [ebp + 0x80], 0
je 0x4466ea
cmp byte [ebp - 0x41], 0
jne 0x446742
cmp byte [ebp - 0xae], 0
jne 0x446742
cmp dword [ebp - 0xac], 0
je 0x446742
cmp dword [ebp - 0xd8], 0
jge 0x446742
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x446742
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 0
mov eax, dword [ebp + 0x8c]
mov edx, dword [ebp - 0xa4]
add dword [eax + 8], edx
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
jge 0x44a7f7
mov eax, dword [edi]
mov edx, dword [ebp + 0x44]
mov dword [edx], eax
jmp 0x44a7f7
movzx eax, byte [ebp - 0xad]
and al, byte [ebp + 0x80]
je 0x446786
cmp byte [ebp - 0x41], 0
jne 0x446786
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e4]
jl 0x446786
mov eax, ebx
call fcn.00401220
call fcn.00401320
cmp esi, eax
jge 0x446786
mov eax, dword [ebx]
cmp word [eax + esi*2], 0x3c
je 0x4467b4
cmp byte [ebp + 0x80], 0
je 0x4467b4
cmp byte [ebp - 0x41], 0
jne 0x4467af
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
add eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1e4]
jge 0x4467af
xor eax, eax
jmp 0x4467b1
mov al, 1
mov byte [ebp - 0x41], al
movzx eax, byte [ebp - 0xad]
mov byte [ebp - 0xad], al
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x10]
call fcn.00401330
cmp byte [ebp + 0x80], 0
je 0x446852
cmp byte [ebp - 0x41], 0
jne 0x4467e4
cmp byte [ebp + 0x84], 0
jne 0x446852
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
jl 0x446852
mov byte [ebp - 0xd2], 0
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 0
je 0x44681b
mov eax, dword [ebp + 0x5c]
cmp dword [eax], 1
jne 0x44681b
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x44681b
cmp byte [ebp - 0xad], 0
jne 0x44681b
mov byte [ebp - 0xd2], 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 0x44687a
cmp byte [ebp - 0xd2], 0
jne 0x44687a
mov byte [ebp - 0x41], 0
mov byte [ebp - 0xad], 1
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xbc], 1
jmp 0x44687a
cmp byte [ebp - 0xbc], 0
je 0x44687a
cmp dword [edi], 1
jle 0x446862
dec dword [edi]
mov byte [ebp - 0xbc], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xbd]
mov byte [ebp + 0x80], al
cmp byte [ebp - 0xad], 0
jne 0x446892
cmp byte [ebp + 0x80], 0
jne 0x446904
cmp byte [ebp - 0x41], 0
jne 0x446904
lea eax, [ebp - 0x254]
push eax
mov eax, dword [ebx]
mov ecx, esi
mov edx, 1
call fcn.00401350
mov edx, dword [ebp - 0x254]
lea eax, [ebp - 0x14]
call fcn.00401330
cmp byte [ebp - 0xbe], 1
je 0x4468c9
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00401330
mov eax, ebx
mov ecx, esi
mov edx, 1
call fcn.00401358
cmp byte [ebp - 0x41], 0
je 0x4468e8
mov eax, dword [ebp + 0x70]
mov edx, dword [ebp - 0xc8]
mov dword [eax], edx
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd0], eax
jmp 0x44697c
dec dword [edi]
cmp dword [ebp - 0xac], 0
je 0x446919
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 0
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebp - 0xa4]
sub dword [eax], edx
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0xb4]
mov dword [eax], edx
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0xb8]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x446951
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
call fcn.004012b8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 4]
call fcn.004012b8
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xd0]
mov dword [eax + 0x18], edx
mov edx, dword [ebx]
mov eax, 0x44a86c
call fcn.00401378
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 1
jne 0x4469ab
mov eax, ebx
call fcn.00401220
call fcn.00401320
cmp eax, 2
jg 0x4469ab
mov eax, ebx
xor edx, edx
call fcn.004012b8
cmp byte [ebp - 0x41], 0
jne 0x44a6c7
cmp dword [ebp - 0x78], 1
jne 0x44a6c7
mov eax, ebx
call fcn.00401220
call fcn.00401320
cmp eax, 2
jle 0x44a6c7
mov eax, dword [ebx]
cmp word [eax + 2], 0x2f
jne 0x447131
mov eax, ebx
call fcn.00401220
call fcn.00401320
cmp eax, 3
jle 0x447131
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
movzx eax, ax
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x44714b.67
jmp dword [eax*4 + 0x446a17]
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne 0x446aed
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x4c], 0x1fffffff
jne 0x446ab2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x446aed
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x4c]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0x1fffffff
jne 0x446adc
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x446aed
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe0]
call fcn.00407378
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.004012b8
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x446b22
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x446b3f
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 0x446b3f
cmp byte [ebp + 0x84], 0
jne 0x446b3f
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x50]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
cmp byte [ebp + 0x84], 0
jne 0x446b6b
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x446b6b
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.004072d8
cmp byte [ebp + 0x88], 0
je 0x446c1e
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
je 0x446bf9
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e0]
mov dword [eax - 0x58], edx
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
add eax, dword [ebp - 0x1ec]
mov edx, dword [ebp + 0x94]
mov dword [edx - 0x5c], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x60]
cmp eax, dword [ebp - 0x1e8]
je 0x446bd2
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1ec]
mov dword [eax - 0x64], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1e8]
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 - 0x264]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00401ec4
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x264]
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 0x446c7d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00406910
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jl 0x446c7d
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
dec edx
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.0044e1fc
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x30], 0
jne 0x446c7d
movzx eax, byte [ebp - 0xbd]
mov byte [ebp + 0x80], al
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x446cf5
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 0x446cf5
cmp byte [ebp + 0x84], 0
jne 0x446cf5
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1fc]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x1f0]
sub edx, dword [eax]
mov eax, dword [ebp + 0x94]
mov dword [eax - 0x68], edx
mov eax, dword [ebp - 0x38]
call fcn.004449d0
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.004073c0
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 - 0xac], eax
mov eax, dword [ebp + 0x5c]
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0x24]
mov byte [eax], 0
cmp byte [ebp - 0xbc], 0
je case.0x44714b.67
mov byte [ebp - 0xbc], 0
mov byte [ebp - 0x41], 0
movzx eax, byte [ebp - 0xbd]
mov byte [ebp + 0x80], al
jmp case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 0
jmp case.0x44714b.67
mov eax, dword [ebx]
cmp word [eax + 6], 0x3e
je 0x446d8b
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.004072d8
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
movzx edx, byte [0x44a920]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 6]
call fcn.00401038
mov word [ebp - 0xa6], ax
cmp word [ebp - 0xa6], 0x54
jne 0x446df3
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
movzx edx, byte [0x44a924]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x55
jne 0x446e16
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 0
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 0
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x50
jne 0x446e6d
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0x1fffffff
jne 0x446e4a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x446e5b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe4]
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x48
jne 0x446e86
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 0
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
movzx edx, byte [0x44a924]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
lea edx, [ebp - 0x268]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.00407300
mov edx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407308
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x54]
call fcn.004072f0
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072f8
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x44714b.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.004072d8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x7c]
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0x1fffffff
jne 0x446f4d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xe8]
call fcn.00407378
jmp case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x80]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x84]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0x1fffffff
jne 0x446fb4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xec]
call fcn.00407378
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
movzx edx, byte [0x44a928]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
mov byte [ebp - 0x41], 1
jmp case.0x44714b.67
mov eax, dword [ebx]
cmp word [eax + 6], 0x3e
je 0x447021
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x447021
mov eax, dword [ebp + 0x50]
dec dword [eax]
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x44714b.67
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.0x44714b.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, 0x44a938
call fcn.00401330
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x8c]
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xf0], 0x1fffffff
jne 0x4470b6
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xf0]
call fcn.00407378
jmp case.0x44714b.67
mov eax, dword [ebx]
cmp word [eax + 6], 0x3e
je 0x4470e7
mov eax, dword [ebp + 0x50]
cmp dword [eax], 0
jle 0x4470e7
mov eax, dword [ebp + 0x50]
dec dword [eax]
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
movzx edx, byte [0x44a940]
not edx
and dl, al
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
mov eax, dword [ebp + 0x94]
push eax
mov eax, dword [ebp - 0x38]
call fcn.00444ab4
pop ecx
jmp case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 0
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 2]
call fcn.00401038
movzx eax, ax
add eax, 0xffffffbf
cmp eax, 0x19
ja case.0x44714b.67
jmp dword [eax*4 + 0x447152]
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 0x447211
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x447211
cmp byte [ebp + 0x84], 0
jne 0x447211
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1fc]
mov dword [eax - 0x74], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f8]
mov dword [eax - 0x70], edx
cmp byte [ebp + 0x84], 0
jne 0x447255
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x447235
mov dword [ebp - 0xf4], 0x1fffffff
jmp 0x447246
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0xf4]
mov dword [eax - 0x4c], edx
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x447285
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x74], 0
jl 0x44731a
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x44731a
cmp byte [ebp + 0x84], 0
jne 0x44731a
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x44], 0x1fffffff
je 0x4472e5
cmp byte [ebp + 0x84], 0
jne 0x4472e5
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x44]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0x1fffffff
jne 0x4472d4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x4472e5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xf8]
call fcn.00407378
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 0x44731a
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
mov eax, dword [ebp - 0x3c]
xor edx, edx
call fcn.004012b8
mov eax, dword [ebp + 0x2c]
mov byte [eax], 1
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x5c]
mov dword [eax], 0xffffffff
xor eax, eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x58]
cmp dword [eax], 0
jl 0x447500
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.00406910
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jle 0x447500
mov edx, dword [ebp + 0x58]
mov edx, dword [edx]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x30]
call fcn.0044e1fc
mov dword [ebp - 0xac], eax
cmp byte [ebp + 0x84], 0
je 0x447419
cmp byte [ebp + 0x88], 0
jne 0x44745a
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x3d], 0
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x70]
mov eax, 0x44a950
call fcn.004071b8
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x4473d5
mov eax, ebx
call fcn.00401220
call fcn.00401320
inc eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0xac]
add eax, 0x40
push eax
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x70]
mov eax, dword [ebx]
mov edx, dword [ebp - 0x70]
call fcn.00401350
lea edx, [ebp - 0x26c]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x40]
call fcn.004448bc
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xac]
add eax, 0x40
call fcn.004012b8
jmp 0x44745a
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x20], 0x1fffffff
je 0x44745a
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x20], 0x1fffffff
jne 0x447446
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x44745a
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407378
mov eax, dword [ebp - 0xac]
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 0x4474a7
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x58], 0
jne 0x447493
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x74]
mov edx, dword [ebp + 0x58]
cmp eax, dword [edx]
jne 0x4474a7
mov eax, dword [ebp - 0xac]
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 - 0xac]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x38], 0xffffd8f1
je 0x4474f1
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xc8], eax
jmp 0x447500
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x70]
sub ecx, 2
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44a968
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0
jle 0x447590
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x270]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x270]
lea eax, [ebp - 0x28]
call fcn.004012c0
or edx, 0xffffffff
mov eax, dword [ebp - 0x28]
call fcn.00406f90
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44a984
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
jle 0x44760b
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004012c0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x274]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x274]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffc0
mov edx, dword [ebp - 0x28]
call fcn.004012c0
mov edx, dword [ebp - 0x20]
mov eax, 0x44a99c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
jle 0x447688
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.004012c0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x278]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x278]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
mov edx, dword [ebp - 0x28]
call fcn.004012c0
jmp 0x447698
mov eax, dword [ebp + 0x94]
add eax, 0xffffffd8
xor edx, edx
call fcn.004012c0
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
cmp dword [ebp - 0xac], 0
je 0x4476ca
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x3c], 0
je 0x4476ca
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x30]
sub eax, 2
jb 0x4476ca
mov eax, dword [ebp + 0x5c]
mov dword [eax], 1
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
sub eax, 1
jb 0x4476d8
je 0x4476e1
jmp 0x4476f4
mov byte [ebp + 0x80], 0
jmp 0x4476f4
cmp dword [edi], 0
jne 0x4476f4
mov byte [ebp + 0x80], 0
mov byte [ebp - 0xbc], 1
cmp byte [ebp + 0x88], 0
je 0x44774e
mov eax, dword [ebp - 0x1e8]
push eax
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp + 0x7c]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1e8]
call fcn.00401ec4
mov eax, dword [ebp + 0x30]
push edi
lea esi, [ebp - 0x264]
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 - 0x1e8]
mov dword [eax - 0x60], edx
mov eax, dword [ebp + 0x58]
inc dword [eax]
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
mov word [ebp - 0xa6], ax
movzx eax, word [ebp - 0xa6]
sub ax, 0x3e
je 0x447796
sub ax, 0xe
je 0x447911
sub ax, 3
je 0x44793d
sub ax, 3
je 0x4477b9
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
mov edx, eax
or dl, byte [0x44a920]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x44a938
call fcn.00401330
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov eax, dword [ebx]
mov dword [ebp - 0x108], eax
mov edx, dword [ebp - 0x108]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jle 0x44789f
lea eax, [ebp - 0x27c]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 4
mov eax, dword [ebx]
mov edx, 4
call fcn.00401350
mov eax, dword [ebp - 0x27c]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44a9b4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jle 0x44789f
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x280]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x280]
lea eax, [ebp - 0x28]
call fcn.004012c0
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.00406f90
mov edx, dword [ebp + 0x70]
mov dword [edx], eax
cmp dword [ebp - 0xa0], 0
sete al
and al, byte [ebp - 0xbb]
je case.0x44714b.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
inc dword [edi]
cmp byte [ebp + 0x84], 0
je case.0x44714b.67
cmp byte [ebp + 0x88], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je case.0x44714b.67
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle case.0x44714b.67
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
cmp eax, dword [edx]
je 0x445c3c
jmp case.0x44714b.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x5c], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x90]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
jmp case.0x44714b.67
lea eax, [ebp - 0x284]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
mov eax, dword [ebx]
mov edx, 1
call fcn.00401350
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x14]
call fcn.00401330
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je case.0x44714b.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x44714b.67
lea eax, [ebp - 0x288]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 6
call fcn.00401350
mov eax, dword [ebp - 0x288]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44a9d4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jle 0x447dc8
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x28c]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x28c]
lea eax, [ebp - 0x28]
call fcn.004012c0
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x290]
mov eax, 0x44a9f8
call fcn.00401378
test eax, eax
jle 0x447a54
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x294]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x294]
mov eax, 0x44aa10
call fcn.00401378
test eax, eax
jle 0x447b4e
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x2a0]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2a0]
mov eax, 0x44aa28
call fcn.00401378
test eax, eax
jle 0x447c48
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x447dc8
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x447dc8
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x447dc8
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x447dc8
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.00407460
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x447d7f
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x447d4f
mov eax, dword [ebp - 0x88]
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.004073b8
mov eax, dword [ebp - 0x88]
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 0x447d0f
mov eax, dword [ebp - 0x88]
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 0x447d08
push 0
mov eax, dword [ebp - 0x38]
call fcn.00407460
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, 0x44aa40
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
jle 0x448203
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
lea edx, [ebp - 0x2a4]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2a4]
mov eax, 0x44a9f8
call fcn.00401378
test eax, eax
jle 0x447e8f
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x2a8]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2a8]
mov eax, 0x44aa10
call fcn.00401378
test eax, eax
jle 0x447f89
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x2ac]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2ac]
mov eax, 0x44aa28
call fcn.00401378
test eax, eax
jle 0x448083
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x448203
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x448203
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x448203
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x448203
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.00407460
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x4481ba
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x44818a
mov eax, dword [ebp - 0x88]
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.004073b8
mov eax, dword [ebp - 0x88]
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 0x44814a
mov eax, dword [ebp - 0x88]
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 0x448143
push 0
mov eax, dword [ebp - 0x38]
call fcn.00407460
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, 0x44aa70
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jle 0x4484c0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 0xa
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2b0]
mov eax, 0x44a9f8
call fcn.00401378
test eax, eax
jle 0x4482ca
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2b4]
mov eax, 0x44aa10
call fcn.00401378
test eax, eax
jle 0x4482fe
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x2b8]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2b8]
mov eax, 0x44aa28
call fcn.00401378
test eax, eax
jle 0x448332
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
xor eax, eax
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x4484c0
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x4484c0
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x4484c0
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x4484c0
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.00407460
push eax
call sub.gdi32.dll_SelectClipRgn
jmp 0x448477
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x448447
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x88]
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.004073b8
mov eax, dword [ebp - 0x88]
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 0x4483fc
mov eax, dword [ebp - 0x88]
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 0x4483f5
push 0
mov eax, dword [ebp - 0x38]
call fcn.00407460
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, 0x44aa94
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jle case.0x44714b.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44aab0
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
jle 0x4486ac
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x28]
mov edx, 0x44aad0
call fcn.004012c0
mov edx, dword [ebp - 0x20]
mov eax, 0x44aae0
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jle 0x448610
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 3
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
push 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0xc]
push eax
lea eax, [ebp - 0x264]
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.00401ec4
lea eax, [ebp - 0x264]
push eax
mov eax, dword [ebp - 0x28]
mov edx, 0x44aad0
call fcn.00401348
sete al
push eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x38]
call fcn.00444128
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x4486c7
mov dword [ebp - 0x12c], 0x1fffffff
jmp 0x4486d8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x12c]
mov dword [eax - 0x7c], edx
cmp dword [ebp - 0x90], 0x1fffffff
jne 0x448702
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x448713
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x90]
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00407340
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
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.00407408
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc4]
call fcn.00407348
jmp case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x41], 1
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
sub ax, 0x49
je 0x4488dc
sub ax, 9
jne case.0x44714b.67
mov byte [ebp - 0x41], 1
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 4
call fcn.00401350
xor eax, eax
mov dword [ebp - 0x90], eax
lea edx, [ebp - 0x2bc]
mov eax, dword [ebp - 0x20]
call fcn.00406f30
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x130]
mov eax, 0x44aaf4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
jle 0x44887a
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00407340
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
mov ecx, dword [ebp - 0x1f0]
inc ecx
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x38]
call fcn.004073f8
mov ecx, dword [ebp - 0x1f0]
inc ecx
mov edx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x38]
call fcn.004073e8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc4]
call fcn.00407348
jmp case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne case.0x44714b.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.00407390
cmp al, 1
jne 0x448916
mov dword [ebp - 0x138], 0x1fffffff
jmp 0x448927
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x138], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x138]
mov dword [eax - 0x84], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, 0xff00000d
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xff00000e
call fcn.004072d8
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
mov word [ebp - 0xa6], ax
cmp word [ebp - 0xa6], 0x3e
jne 0x44899d
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
mov edx, eax
or dl, byte [0x44a928]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x4e
jne 0x448a8d
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab0c
call fcn.00444344
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00401078
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x5c], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x58]
jge case.0x44714b.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 - 0x1fc], eax
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x4d
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xa0]
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2c0]
mov eax, dword [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x2c0]
mov eax, 0x44ab1c
call fcn.00401378
add eax, 4
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
lea edx, [ebp - 0x2c4]
mov eax, dword [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x20]
call fcn.004012c0
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab30
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0
jle 0x448c19
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa4]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0xa0]
jne 0x448c19
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x2c]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x2c]
pop edx
call fcn.00401350
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.00401350
xor eax, eax
mov dword [ebp - 0x98], eax
xor eax, eax
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab44
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jle 0x448c99
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x2c8]
mov eax, dword [ebp - 0x2c]
call fcn.004445a8
mov edx, dword [ebp - 0x2c8]
lea eax, [ebp - 0x2c]
call fcn.004012c0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.00401078
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab5c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
jle 0x448d09
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x2cc]
mov eax, dword [ebp - 0x2c]
call fcn.004445a8
mov edx, dword [ebp - 0x2cc]
lea eax, [ebp - 0x2c]
call fcn.004012c0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
call fcn.00401078
mov dword [ebp - 0x9c], 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 - 0x2d0]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2d0]
mov eax, 0x44a9f8
call fcn.00401378
test eax, eax
jle 0x448d59
lea eax, [ebp - 0x28]
mov ecx, 4
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x2d4]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2d4]
mov eax, 0x44aa10
call fcn.00401378
test eax, eax
jle 0x448e53
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x2d8]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2d8]
mov eax, 0x44aa28
call fcn.00401378
test eax, eax
jle 0x448f4d
lea eax, [ebp - 0x28]
mov ecx, 5
mov edx, 1
call fcn.00401358
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 - 0x29c]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00443ef4
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x29c]
mov dword [eax - 0x98], edx
mov edx, dword [ebp - 0x298]
mov dword [eax - 0x94], edx
push 0x60
push 0x58
mov eax, dword [ebp - 0x38]
call fcn.00407460
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.00407460
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 - 0x1ec]
mov edx, dword [ebp + 0x7c]
cmp eax, dword [edx]
jle 0x449005
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 - 0x1ec]
cmp eax, edx
jle 0x449005
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1f8]
jl 0x449005
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
add eax, dword [ebp - 0x1f8]
cmp eax, dword [ebp + 0x34]
jle 0x449005
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x449005
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.004012b8
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0x28], 0
je 0x448fed
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x94]
mov edx, dword [edx - 0x28]
call fcn.004012b8
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 - 0x1e4]
sub edx, dword [ebp - 0x1ec]
cmp eax, edx
jle 0x449050
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1ec]
mov edx, dword [ebp + 0x94]
cmp eax, dword [edx - 0x98]
jle 0x449050
mov byte [ebp - 0x42], 1
jmp 0x449097
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 - 0x1fc], eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x94]
mov edx, dword [ebp + 0x78]
cmp eax, dword [edx]
jle 0x449097
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, 0x44ab78
call fcn.00401378
test eax, eax
jle 0x4490f6
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab90
call fcn.00401378
test eax, eax
jle 0x4490cf
mov eax, dword [ebp - 0x38]
call fcn.004449d0
mov edx, dword [ebp + 0x78]
mov edx, dword [edx]
sub edx, eax
mov eax, dword [ebp + 0x60]
mov dword [eax], edx
jmp 0x4490f6
mov edx, dword [ebp - 0x20]
mov eax, 0x44aba8
call fcn.00401378
test eax, eax
jle 0x4490f6
mov eax, dword [ebp - 0x38]
call fcn.004449d0
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, 0x44abc4
call fcn.00401378
test eax, eax
jle case.0x44714b.67
mov eax, dword [ebp - 0x38]
call fcn.004449d0
mov edx, dword [ebp + 0x78]
mov dword [edx], eax
mov eax, dword [ebp + 0x60]
xor edx, edx
mov dword [eax], edx
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
sub ax, 0x49
jne 0x449208
mov eax, dword [ebx]
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 0x148]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jle case.0x44714b.67
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 2
mov eax, dword [ebx]
mov edx, 2
call fcn.00401350
mov eax, dword [ebp - 0x2dc]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44a9b4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x150], 0
jle case.0x44714b.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x2e0]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x2e0]
lea eax, [ebp - 0x28]
call fcn.004012c0
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.00406f90
mov edx, dword [ebp + 0x6c]
mov dword [edx], eax
jmp case.0x44714b.67
mov dword [ebp - 0x90], 0x1fffffff
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
xor edx, edx
call fcn.004012c0
mov eax, dword [ebx]
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x154]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x158], eax
cmp dword [ebp - 0x158], 0
jle 0x449377
lea eax, [ebp - 0x2e4]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
mov eax, dword [ebp - 0x2e4]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44abdc
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
jle 0x449320
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
mov eax, dword [ebp + 0x94]
add eax, 0xffffff58
mov edx, dword [ebp - 0x28]
call fcn.004012c0
mov edx, dword [ebp - 0x20]
mov eax, 0x44aaf4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
jle 0x449377
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x90], 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 0x449394
mov byte [ebp - 0x42], 1
jmp 0x449398
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 - 0x1fc], eax
cmp byte [ebp + 0x84], 0
jne 0x4497d1
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x37], 0
jne 0x4497d1
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xa8], 0
jne 0x44955c
cmp dword [ebp - 0x90], 0x1fffffff
je 0x44940d
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 - 0x90]
call fcn.004072d8
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407300
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x44abf4
call fcn.00407308
mov eax, dword [ebp + 0x94]
cmp byte [eax - 0x85], 0
jne 0x44948c
mov eax, dword [ebp + 0x50]
test byte [eax], 1
je 0x449467
lea eax, [ebp - 0x1fc]
push eax
push 0
mov eax, dword [ebp - 0x38]
call fcn.00407460
mov ecx, 1
mov edx, 0x44ac10
call fcn.00401b74
jmp 0x449522
lea eax, [ebp - 0x1fc]
push eax
push 0
mov eax, dword [ebp - 0x38]
call fcn.00407460
mov ecx, 1
mov edx, 0x44ac20
call fcn.00401b74
jmp 0x449522
lea edx, [ebp - 0x2e8]
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb0]
call fcn.00406f80
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
mov ecx, 0x44ac30
call fcn.00401338
mov eax, dword [ebp + 0x94]
inc dword [eax - 0xb0]
push 0
lea eax, [ebp - 0x1fc]
push eax
mov eax, dword [ebp + 0x94]
add eax, 0xffffffe0
call fcn.00401220
call fcn.00401320
push eax
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0x20]
call fcn.004012c8
push eax
mov eax, dword [ebp - 0x38]
call fcn.00407460
push eax
call fcn.00401b64
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0x20]
mov eax, dword [ebp - 0x38]
call fcn.00407430
add eax, dword [ebp - 0x1fc]
sub eax, 0xc
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00407308
cmp dword [ebp - 0x90], 0x1fffffff
je 0x4497d1
mov eax, dword [ebp + 0x94]
mov edx, dword [eax - 0xac]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
jmp 0x4497d1
mov eax, dword [ebp + 0x94]
mov dword [eax - 0xb4], 0x1fffffff
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x44ac44
call fcn.00401348
jne 0x449698
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x4495a3
mov dword [ebp - 0x164], 0x1fffffff
jmp 0x4495b4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x164], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x164]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
cmp dword [ebp - 0x90], 0x1fffffff
jne 0x4495f2
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x449603
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x90]
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00407398
mov eax, dword [ebp - 0x1fc]
add eax, 8
push eax
mov eax, dword [ebp - 0x1f8]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x1f8]
add ecx, 2
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.00407408
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0x1fffffff
jne 0x449668
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x449679
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x168]
call fcn.00407378
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x449698
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xa8]
mov edx, 0x44ac60
call fcn.00401348
jne 0x4497c4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x4496cf
mov dword [ebp - 0x16c], 0x1fffffff
jmp 0x4496e0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x16c]
mov dword [eax - 0xb4], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
cmp dword [ebp - 0x90], 0x1fffffff
jne 0x44971e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x44972f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x90]
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00407398
mov eax, dword [ebp - 0x1fc]
add eax, 8
push eax
mov eax, dword [ebp - 0x1f8]
add eax, 0xa
push eax
mov ecx, dword [ebp - 0x1f8]
add ecx, 2
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x38]
call fcn.004073c8
mov eax, dword [ebp + 0x94]
mov eax, dword [eax - 0xb4]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0x1fffffff
jne 0x449794
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x4497a5
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x170]
call fcn.00407378
mov eax, dword [ebp + 0x94]
cmp dword [eax - 0xb4], 0x1fffffff
jne 0x4497c4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
add dword [ebp - 0x1fc], 0xc
jmp case.0x44714b.67
mov eax, dword [ebx]
cmp word [eax + 4], 0x3e
je 0x449809
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x4497f7
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x85], 0
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
mov edx, eax
or dl, byte [0x44a940]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
mov word [ebp - 0xa6], ax
cmp word [ebp - 0xa6], 0x4c
jne 0x449876
mov eax, dword [ebp + 0x50]
inc dword [eax]
mov eax, dword [ebp + 0x7c]
cmp dword [eax], 0
jle 0x449859
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 - 0xa6], 0x46
jne case.0x44714b.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab0c
call fcn.00444344
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00401078
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 - 0x1fc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [ebp + 0x7c]
mov dword [edx], eax
jmp case.0x44714b.67
mov eax, dword [ebx]
mov dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x174]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
jle case.0x44714b.67
lea eax, [ebp - 0x2ec]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
mov eax, dword [ebp - 0x2ec]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44ab78
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
jle 0x449a56
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x2f0]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x2f0]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov edx, dword [ebp - 0x28]
mov eax, 0x44ac7c
call fcn.00401378
test eax, eax
jle 0x449a26
mov eax, dword [ebp + 0x40]
mov byte [eax], 1
jmp 0x449a56
mov edx, dword [ebp - 0x28]
mov eax, 0x44ac94
call fcn.00401378
test eax, eax
jle 0x449a3f
mov eax, dword [ebp + 0x40]
mov byte [eax], 0
jmp 0x449a56
mov edx, dword [ebp - 0x28]
mov eax, 0x44acac
call fcn.00401378
test eax, eax
jle 0x449a56
mov eax, dword [ebp + 0x40]
mov byte [eax], 2
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
cmp dword [eax], 0
je 0x449a86
mov byte [ebp - 0x41], 1
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
mov edx, 0x44a938
call fcn.00401330
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x34]
jmp 0x449a98
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, 0x44acc8
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
jle 0x449b34
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
mov eax, dword [ebp - 0x28]
call fcn.00444398
mov edx, dword [ebp + 0x3c]
mov dword [edx], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44aa94
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0
jle case.0x44714b.67
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne case.0x44714b.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44aab0
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x188], eax
cmp dword [ebp - 0x188], 0
jle 0x449bd4
mov eax, dword [ebp + 0x94]
movzx eax, byte [eax + 0x60]
xor al, 1
mov byte [ebp - 0x189], al
jmp 0x449bdb
mov byte [ebp - 0x189], 0
cmp byte [ebp - 0x189], 0
je 0x449cb1
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 9
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov edx, 0x1fffffff
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x94], eax
cmp byte [ebp + 0x84], 0
jne case.0x44714b.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 - 0x90]
call fcn.00407348
push 0x1fffffff
mov eax, dword [ebp - 0x1e0]
add eax, 2
push eax
lea eax, [ebp - 0x264]
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 - 0x1e8]
call fcn.00401ec4
lea eax, [ebp - 0x264]
push eax
push 1
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x38]
call fcn.00444128
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
cmp byte [ebp + 0x84], 0
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x29], 1
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x449ce3
mov dword [ebp - 0x190], 0x1fffffff
jmp 0x449cf4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x190], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x190]
mov dword [eax - 0x8c], edx
cmp dword [ebp - 0x90], 0x1fffffff
jne 0x449d21
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x449d32
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x90]
call fcn.00407378
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
call fcn.00407340
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x90]
call fcn.00407348
mov eax, dword [ebp + 0x94]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x1e0]
push eax
mov eax, dword [ebp + 0x94]
mov edx, dword [eax + 0x8c]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x38]
call fcn.00407408
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xc4]
call fcn.00407348
jmp case.0x44714b.67
mov eax, dword [ebx]
mov dword [ebp - 0x194], eax
mov edx, dword [ebp - 0x194]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x198], eax
cmp dword [ebp - 0x198], 0
jle case.0x44714b.67
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x449e16
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x449df6
mov dword [ebp - 0x19c], 0x1fffffff
jmp 0x449e07
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x19c]
mov dword [eax - 0x7c], edx
lea eax, [ebp - 0x2f4]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [ebx]
mov edx, 6
call fcn.00401350
mov eax, dword [ebp - 0x2f4]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44ace4
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jle 0x449eaa
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x2f8]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x2f8]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
call fcn.00407308
mov edx, dword [ebp - 0x20]
mov eax, 0x44acfc
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jle 0x449f3b
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x449f3b
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x449f3b
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 6
mov eax, dword [ebp - 0x20]
call fcn.00401350
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.004072d8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.004072d8
mov edx, dword [ebp - 0x20]
mov eax, 0x44aa94
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0
jle 0x449f6e
movzx eax, byte [ebp + 0x84]
xor al, 1
mov byte [ebp - 0x1a9], al
jmp 0x449f75
mov byte [ebp - 0x1a9], 0
cmp byte [ebp - 0x1a9], 0
je 0x44a030
mov eax, dword [ebp + 0x94]
cmp byte [eax + 0x60], 0
jne 0x44a030
movzx eax, byte [ebp + 0x84]
xor al, 1
test al, al
je 0x44a030
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 7
mov eax, dword [ebp - 0x20]
call fcn.00401350
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x449fdf
mov dword [ebp - 0x1b0], 0x1fffffff
jmp 0x449ff0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x1b0], eax
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x28]
call fcn.004446d8
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0x1fffffff
jne 0x44a01f
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp 0x44a030
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x1b4]
call fcn.00407378
mov edx, dword [ebp - 0x20]
mov eax, 0x44ad18
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0
jle 0x44a199
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44ad30
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea edx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x2fc]
mov eax, 0x44ad40
call fcn.00401378
test eax, eax
jle case.0x44714b.67
lea eax, [ebp - 0x28]
mov ecx, 0xa
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x300]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x300]
mov eax, 0x44ad64
call fcn.00401378
test eax, eax
jle case.0x44714b.67
lea eax, [ebp - 0x308]
push eax
lea edx, [ebp - 0x30c]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x30c]
mov eax, 0x44ad64
call fcn.00401378
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.00401350
mov eax, dword [ebp - 0x308]
lea edx, [ebp - 0x304]
call fcn.00406f78
mov edx, dword [ebp - 0x304]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov eax, dword [ebp - 0x28]
call fcn.00444398
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407318
jmp case.0x44714b.67
mov edx, dword [ebp - 0x20]
mov eax, 0x44ad78
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0
jle case.0x44714b.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 4
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea edx, [ebp - 0x310]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x310]
lea eax, [ebp - 0x28]
call fcn.004012c0
mov eax, dword [ebp - 0x28]
call fcn.00444398
cmp eax, 5
ja case.0x44a20d.0
jmp dword [eax*4 + 0x44a214]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 8
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xa
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xc
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0xe
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov edx, 0x10
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebp - 0x28]
call fcn.00444398
mov edx, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407318
jmp case.0x44714b.67
mov eax, dword [ebx]
movzx eax, word [eax + 4]
call fcn.00401038
mov word [ebp - 0xa6], ax
cmp word [ebp - 0xa6], 0x3e
jne 0x44a2ee
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
mov edx, eax
or dl, byte [0x44a924]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x54
jne 0x44a31b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407320
mov edx, eax
or dl, byte [0x44a924]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
call fcn.00407328
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x48
jne 0x44a334
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x39], 1
jmp case.0x44714b.67
cmp word [ebp - 0xa6], 0x50
jne 0x44a513
mov eax, dword [ebx]
mov dword [ebp - 0x1c0], eax
mov edx, dword [ebp - 0x1c0]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
jle case.0x44714b.67
lea eax, [ebp - 0x314]
push eax
mov ecx, dword [ebp - 0x78]
sub ecx, 6
mov eax, dword [ebx]
mov edx, 6
call fcn.00401350
mov eax, dword [ebp - 0x314]
lea edx, [ebp - 0x20]
call fcn.00406f30
mov edx, dword [ebp - 0x20]
mov eax, 0x44ad18
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jle case.0x44714b.67
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov edx, dword [ebp - 0x78]
add edx, 5
mov eax, dword [ebp - 0x20]
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44ad30
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x28]
mov eax, 0x44aa60
call fcn.00401378
inc eax
push eax
lea eax, [ebp - 0x28]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x28]
pop edx
call fcn.00401350
lea edx, [ebp - 0x318]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x318]
mov eax, 0x44ad90
call fcn.00401378
test eax, eax
jle case.0x44714b.67
lea eax, [ebp - 0x28]
mov ecx, 0x11
mov edx, 1
call fcn.00401358
lea edx, [ebp - 0x31c]
mov eax, dword [ebp - 0x28]
call fcn.00406f30
mov edx, dword [ebp - 0x31c]
mov eax, 0x44adc0
call fcn.00401378
dec eax
jne case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407390
cmp al, 1
jne 0x44a4af
mov dword [ebp - 0x1cc], 0x1fffffff
jmp 0x44a4c0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
call fcn.00407370
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1cc]
mov dword [eax - 0x7c], edx
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0044428c
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0x1fffffff
jne 0x44a4fd
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dl, 1
call fcn.00407398
jmp case.0x44714b.67
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x1d0]
call fcn.00407378
jmp case.0x44714b.67
mov edx, dword [ebx]
mov eax, 0x44add0
call fcn.00444344
dec eax
jne 0x44a531
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x35], 1
jmp case.0x44714b.67
mov edx, dword [ebx]
mov eax, 0x44ade8
call fcn.00444344
dec eax
jne case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x36], 1
jmp case.0x44714b.67
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebx]
mov eax, 0x44a88c
call fcn.00401378
mov ecx, eax
dec ecx
mov eax, dword [ebx]
mov edx, 3
call fcn.00401350
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x44ae00
call fcn.00444344
add eax, 2
push eax
lea eax, [ebp - 0x20]
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, dword [ebp - 0x20]
pop edx
call fcn.00401350
lea edx, [ebp - 0x320]
mov eax, dword [ebp - 0x28]
call fcn.004445a8
mov edx, dword [ebp - 0x320]
lea eax, [ebp - 0x28]
call fcn.004012c0
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
call fcn.00401078
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x94]
push eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
call fcn.00444a5c
pop ecx
jmp case.0x44714b.67
mov eax, dword [ebp + 0x94]
mov byte [eax - 0x37], 1
cmp dword [ebp - 0x10], 0
je 0x44a603
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004012c0
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.004012c0
mov eax, dword [ebx]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
mov eax, 0x44a88c
call fcn.00401378
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0
jle 0x44a63e
movzx eax, byte [ebp - 0x42]
xor al, 1
mov byte [ebp - 0x1d9], al
jmp 0x44a645
mov byte [ebp - 0x1d9], 0
cmp byte [ebp - 0x1d9], 0
je 0x44a6a7
lea eax, [ebp - 0x324]
push eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401350
mov edx, dword [ebp - 0x324]
lea eax, [ebp - 0x1c]
call fcn.00401330
lea eax, [ebp - 0x328]
push eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401350
mov edx, dword [ebp - 0x328]
lea eax, [ebp - 0x14]
call fcn.00401330
mov eax, ebx
mov ecx, dword [ebp - 0x78]
mov edx, 1
call fcn.00401358
jmp 0x44a6c7
cmp byte [ebp - 0x42], 0
jne 0x44a6c7
mov eax, ebx
call fcn.00401220
call fcn.00401320
mov ecx, eax
mov eax, ebx
mov edx, 1
call fcn.00401358
mov eax, ebx
call fcn.00401220
call fcn.00401320
test eax, eax
jle 0x44a6e7
cmp byte [ebp - 0x41], 0
jne 0x44a6e7
cmp byte [ebp - 0x42], 0
je 0x444dbd
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0xfffffffe
jne 0x44a706
cmp dword [edi], 0
jle 0x44a706
mov eax, dword [edi]
mov edx, dword [ebp + 0x48]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov byte [eax], 1
jmp 0x44a7f7
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
movzx eax, byte [ebp - 0xad]
xor al, 1
and al, byte [ebp - 0x41]
je 0x44a754
cmp byte [ebp + 0x80], 0
je 0x44a754
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0xb4]
jle 0x44a73e
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp - 0xb4]
mov dword [eax], edx
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0xb8]
jle 0x44a754
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp - 0xb8]
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 0x44a76b
mov eax, dword [ebp + 0x7c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0x94]
cmp dword [eax + 0x78], 0
jl 0x44a7ec
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 0x44a7ec
mov eax, dword [ebp + 0x24]
cmp byte [eax], 0
je 0x44a7ec
cmp byte [ebp + 0x84], 0
jne 0x44a7ec
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1fc]
mov dword [eax - 0x6c], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp - 0x1f0]
mov dword [eax - 0x68], edx
mov eax, dword [ebp + 0x94]
lea edx, [eax - 0x74]
mov eax, dword [ebp - 0x38]
call fcn.004073c0
mov eax, dword [ebp - 0x1ec]
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.004012b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x44a854
lea eax, [ebp - 0x328]
mov edx, 0x23
call fcn.004012b0
lea eax, [ebp - 0x294]
mov edx, 0xb
call fcn.004012b0
lea eax, [ebp - 0x268]
call fcn.004012a8
lea eax, [ebp - 0x254]
mov edx, 3
call fcn.004012b0
lea eax, [ebp - 0x34]
mov edx, 0xd
call fcn.004012b0
ret