Function at 0x531924
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe68
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x534d8e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5c6158]
xor edx, edx
mov dword [eax], edx
cmp byte [0x5c4f6c], 0
je 0x531988
mov byte [ebp - 0x15], 1
jmp 0x534d45
mov byte [ebp - 0x15], 0
mov byte [0x5c5214], 0
mov eax, 0x5c8314
mov ecx, dword [0x5c5018]
mov edx, dword [0x5c5014]
call fcn.00403cd8
cmp dword [0x5c8318], 0
je 0x534d45
cmp dword [0x5c831c], 0xa
jge 0x5319f4
push dword [0x5c4fb8]
push dword [0x5c4fcc]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
lea edx, [ebp - 0x20]
mov eax, dword [0x5c8318]
mov ecx, 0xa
call fcn.004027e0
cmp word [ebp - 0x20], 0x5a4d
je 0x531a4d
push dword [0x5c4fb8]
push dword [0x5c4fc8]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x7f8], 1
jmp 0x534d45
lea eax, [ebp - 0x68]
mov edx, 0xc
call fcn.00403f60
mov eax, dword [0x5c8318]
add eax, 2
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x68]
call fcn.00403e5c
mov dword [ebp - 0x70], eax
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov ecx, 0xc
call fcn.004027e0
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x68]
call fcn.00407010
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 0x68]
call fcn.00403aa8
mov eax, dword [ebp - 0x68]
mov edx, 0x534da8
call fcn.00403d9c
je 0x531ab8
mov eax, dword [ebp - 0x68]
mov edx, 0x534dc0
call fcn.00403d9c
push dword [0x5c4fd0]
lea ecx, [ebp - 0x88]
mov edx, 4
mov eax, 0x40
call fcn.00407490
push dword [ebp - 0x88]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
cmp dword [0x5c831c], 0x40
jge 0x531b3a
push dword [0x5c4fb8]
push dword [0x5c4fcc]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
mov eax, 0x5c8320
xor ecx, ecx
mov edx, 0x40
call fcn.00402b14
mov edx, 0x5c8320
mov eax, dword [0x5c8318]
mov ecx, 0x40
call fcn.004027e0
mov edx, dword [0x5c4fd4]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov eax, dword [0x5c835c]
mov dword [ebp - 0x28], eax
push dword [0x5c4fd8]
lea ecx, [ebp - 0x88]
mov edx, 4
mov eax, dword [ebp - 0x28]
call fcn.00407490
push dword [ebp - 0x88]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov eax, dword [ebp - 0x28]
add eax, 0x78
cmp eax, dword [0x5c831c]
jle 0x531bfa
push dword [0x5c4fb8]
push dword [0x5c4fdc]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
mov eax, dword [ebp - 0x28]
mov dword [0x5c8364], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], eax
mov eax, dword [0x5c8318]
mov edx, dword [ebp - 0x40]
add eax, edx
mov dword [ebp - 0x24], eax
mov eax, 0x5c836c
xor ecx, ecx
mov edx, 0x78
call fcn.00402b14
mov eax, dword [0x5c8318]
mov edx, dword [ebp - 0x40]
add eax, edx
mov edx, 0x5c836c
mov ecx, 0x78
call fcn.004027e0
add dword [ebp - 0x40], 0x78
mov eax, dword [0x5c83a8]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x531c58
mov dword [ebp - 0x78], 0x200
mov eax, dword [0x5c836c]
and eax, 0xffff
cmp eax, 0x454e
jne 0x531c9e
push dword [0x5c4fb8]
push dword [0x5c4fe0]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
mov eax, dword [0x5c836c]
and eax, 0xffff
cmp eax, 0x454c
jne 0x531ce4
push dword [0x5c4fb8]
push dword [0x5c4fe4]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
cmp dword [0x5c836c], 0x4550
je 0x531d25
push dword [0x5c4fb8]
push dword [0x5c4fe8]
push dword [0x5c4fc4]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
jmp 0x534d45
mov edx, dword [0x5c4fec]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov eax, dword [0x5c6830]
xor dword [eax], 0xf455ff
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c8370]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
movzx eax, word [0x5c8370]
cmp eax, 0x1c2
jg 0x531dfb
je 0x5320f5
cmp eax, 0x184
jg 0x531dd9
je 0x531f36
sub eax, 0x14c
je 0x531e55
sub eax, 0x16
je 0x531eaf
sub eax, 4
je 0x531edc
sub eax, 2
je 0x531f09
jmp 0x532149
sub eax, 0x1a2
je 0x53209e
sub eax, 4
je 0x5320cb
sub eax, 0x1a
je 0x531fbd
jmp 0x532149
cmp eax, 0x284
jg 0x531e2f
je 0x531f63
sub eax, 0x1f0
je 0x531f90
sub eax, 0x10
je 0x531e82
sub eax, 0x66
je 0x532017
sub eax, 2
je 0x531fea
jmp 0x532149
sub eax, 0x366
je 0x532044
sub eax, 0x100
je 0x532071
sub eax, 0x81fe
je 0x53211f
jmp 0x532149
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534de4
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534df4
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e08
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e18
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e28
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e38
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e4c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e68
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e78
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534e84
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534ea4
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534eb4
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534ecc
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534ee4
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534ef8
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f0c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f1c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x532171
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f2c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
cmp word [0x5c8370], 0x14c
sete byte [0x5c50bc]
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c8372]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 1
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
movzx eax, word [0x5c8372]
mov dword [0x5c83f0], eax
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c8374]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 2
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x84]
mov eax, dword [0x5c8374]
call fcn.005a26fc
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 2
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c8378]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 3
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c837c]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 4
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c8380]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 5
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c8382]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 6
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
cmp word [0x5c8384], 0
jne 0x5323d2
mov edx, dword [0x5c5050]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov word [0x5c8384], 0x10b
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c8384]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov ax, word [0x5c8384]
sub ax, 0x107
je 0x532441
sub ax, 4
je 0x532471
sub ax, 0x100
je 0x53249e
jmp 0x5324cb
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f40
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x5324f6
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f54
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x5324f6
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f64
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
jmp 0x5324f6
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x534f2c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
cmp word [0x5c8384], 0x20b
jne 0x532533
mov ax, word [0x534f6c]
push eax
mov cl, 1
mov edx, dword [0x5c51f8]
mov eax, 0x534f78
call fcn.00449a38
mov edx, 0x535038
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov byte [0x5c5214], 1
jmp 0x534d45
lea edx, [ebp - 0x58]
mov eax, dword [0x5c6520]
mov ecx, 8
call fcn.004027e0
xor eax, eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x58]
mov dl, byte [ebp - 0x30]
add dl, 0x55
xor byte [eax], dl
inc dword [ebp - 0x30]
inc eax
cmp dword [ebp - 0x30], 8
jne 0x53254d
push 0xa
lea eax, [ebp - 0x58]
push eax
mov eax, dword [0x5c6878]
mov eax, dword [eax]
push eax
call fcn.00405778
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jne 0x532588
mov eax, dword [0x5c67ac]
mov dword [eax], 0x1feb25b8
jmp 0x532591
mov eax, dword [0x5c67ac]
xor edx, edx
mov dword [eax], edx
lea ecx, [ebp - 0x88]
xor eax, eax
mov al, byte [0x5c8387]
mov edx, 2
call fcn.00407490
push dword [ebp - 0x88]
lea ecx, [ebp - 0x8c]
xor eax, eax
mov al, byte [0x5c8386]
mov edx, 2
call fcn.00407490
push dword [ebp - 0x8c]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 8
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x88]
xor eax, eax
mov al, byte [0x5c8386]
call fcn.00407460
push dword [ebp - 0x88]
push 0x535080
lea edx, [ebp - 0x8c]
xor eax, eax
mov al, byte [0x5c8387]
call fcn.00407460
push dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 8
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c8388]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 9
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c838c]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xa
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c8390]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xb
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov eax, dword [0x5c8394]
add eax, dword [0x5c83a0]
mov edx, 8
call fcn.00407490
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x614]
call fcn.00422154
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x614]
call fcn.00422124
lea eax, [ebp - 0x90]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xc
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c8398]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xd
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c839c]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xe
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83a0]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x21c]
mov eax, dword [eax + 0x130]
mov edx, 0xf
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83a4]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
xor edx, edx
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
cmp dword [0x5c83a8], 0
jne 0x53294a
mov edx, dword [0x5c5054]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov dword [0x5c83a8], 0x200
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83a8]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 1
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x88]
movzx eax, word [0x5c83ae]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x88]
lea ecx, [ebp - 0x8c]
movzx eax, word [0x5c83ac]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x8c]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 2
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x88]
movzx eax, word [0x5c83ac]
call fcn.00407460
push dword [ebp - 0x88]
push 0x535080
lea edx, [ebp - 0x8c]
movzx eax, word [0x5c83ae]
call fcn.00407460
push dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 2
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x88]
movzx eax, word [0x5c83b2]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x88]
lea ecx, [ebp - 0x8c]
movzx eax, word [0x5c83b0]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x8c]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 3
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x88]
movzx eax, word [0x5c83b0]
call fcn.00407460
push dword [ebp - 0x88]
push 0x535080
lea edx, [ebp - 0x8c]
movzx eax, word [0x5c83b2]
call fcn.00407460
push dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 3
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x88]
movzx eax, word [0x5c83b6]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x88]
lea ecx, [ebp - 0x8c]
movzx eax, word [0x5c83b4]
mov edx, 4
call fcn.00407490
push dword [ebp - 0x8c]
push 0x534dd8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 4
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x88]
movzx eax, word [0x5c83b4]
call fcn.00407460
push dword [ebp - 0x88]
push 0x535080
lea edx, [ebp - 0x8c]
movzx eax, word [0x5c83b6]
call fcn.00407460
push dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 4
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83b8]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 5
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 5
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x53508c
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83bc]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 6
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea edx, [ebp - 0x84]
mov eax, dword [0x5c83bc]
call fcn.00407460
lea eax, [ebp - 0x84]
mov edx, 0x5350a0
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 6
call fcn.00483108
mov eax, dword [eax + 8]
mov edx, 1
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83c0]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 7
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83c4]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 8
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5c83c4]
mov dword [0x5c5058], eax
push 0x5c505c
push 0x5c5058
mov eax, dword [0x5c8308]
call fcn.00403e50
push eax
call fcn.0046c630
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp eax, 4
ja case.default.0x532e4d
jmp dword [eax*4 + 0x532e54]
push 0x5350b0
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c5058]
call fcn.00407490
push dword [ebp - 0x84]
push 0x534dd8
push 0x5350d8
lea ecx, [ebp - 0x88]
mov edx, 8
mov eax, dword [0x5c505c]
call fcn.00407490
push dword [ebp - 0x88]
push 0x5350f4
lea eax, [ebp - 0x2c]
mov edx, 6
call fcn.00403d4c
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c505c]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x624]
call fcn.00422154
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x628]
mov dl, 1
call fcn.004220bc
jmp case.default.0x532e4d
lea eax, [ebp - 0x2c]
mov edx, 0x535100
call fcn.00403aa8
jmp case.default.0x532e4d
lea eax, [ebp - 0x2c]
mov edx, 0x535118
call fcn.00403aa8
jmp case.default.0x532e4d
lea eax, [ebp - 0x2c]
mov edx, 0x53512c
call fcn.00403aa8
jmp case.default.0x532e4d
lea eax, [ebp - 0x2c]
mov edx, 0x535144
call fcn.00403aa8
cmp dword [ebp - 0x38], 0
je 0x532f6a
push dword [0x5c4fb8]
push 0x53515c
push dword [ebp - 0x2c]
push 0x535168
lea eax, [ebp - 0x2c]
mov edx, 4
call fcn.00403d4c
push dword [0x5c4ff0]
push 0x535174
push dword [ebp - 0x2c]
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
movzx ebx, word [0x5c83c8]
cmp ebx, 9
ja case.0x532fa6.4
jmp dword [ebx*4 + 0x532fad]
lea eax, [ebp - 0x2c]
mov edx, 0x534f2c
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x535180
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x535190
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x5351a4
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x5351bc
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x5351d4
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x5351ec
call fcn.00403aa8
jmp 0x53304b
lea eax, [ebp - 0x2c]
mov edx, 0x534f2c
call fcn.00403aa8
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c83c8]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 9
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 9
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea eax, [ebp - 0x2c]
call fcn.00403a10
mov ax, word [0x5c83ca]
sub ax, 0x800
je 0x5330e8
sub ax, 0x1800
je 0x5330f7
sub ax, 0x6000
je 0x533106
jmp 0x533113
lea eax, [ebp - 0x2c]
mov edx, 0x535200
call fcn.00403aa8
jmp 0x533113
lea eax, [ebp - 0x2c]
mov edx, 0x535214
call fcn.00403aa8
jmp 0x533113
lea eax, [ebp - 0x2c]
mov edx, 0x535228
call fcn.00403aa8
lea ecx, [ebp - 0x84]
movzx eax, word [0x5c83ca]
mov edx, 4
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xa
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xa
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83cc]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xb
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83d0]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xc
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83d4]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xd
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83d8]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xe
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83dc]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xf
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0xf
call fcn.00483108
mov eax, dword [eax + 8]
mov ecx, 0x535248
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0x20]
lea ecx, [ebp - 0x84]
mov edx, 8
mov eax, dword [0x5c83e0]
call fcn.00407490
lea eax, [ebp - 0x84]
mov edx, 0x534dd8
call fcn.00403c94
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x220]
mov eax, dword [eax + 0x130]
mov edx, 0x10
call fcn.00483108
mov eax, dword [eax + 8]
xor edx, edx
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x20]
call fcn.00527e5c
mov dword [0x5c83f8], eax
mov ebx, dword [0x5c83f8]
shl ebx, 3
push 4
push 0x1000
push ebx
push 0
call fcn.004059b8
mov dword [0x5c83e8], eax
mov eax, dword [0x5c83e8]
xor ecx, ecx
mov edx, ebx
call fcn.00402b14
mov eax, dword [0x5c8318]
mov edx, dword [ebp - 0x40]
add eax, edx
mov edx, dword [0x5c83e8]
mov ecx, ebx
call fcn.004027e0
mov dword [0x5c83e4], ebx
mov eax, dword [ebp - 0x24]
call fcn.00527e6c
mov ebx, eax
mov eax, ebx
sub eax, dword [0x5c8318]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x61], 0
mov eax, dword [0x5c83f0]
dec eax
test eax, eax
jl 0x533496
inc eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 8], 0
jne 0x53348e
push 0x53525c
lea eax, [ebp - 0x88]
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
lea edx, [ebx + edx*8]
mov ecx, 8
call fcn.00403c3c
push dword [ebp - 0x88]
push 0x535288
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x30]
call fcn.00407460
push dword [ebp - 0x8c]
push 0x535294
lea eax, [ebp - 0x84]
mov edx, 5
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov byte [ebp - 0x61], 1
inc dword [ebp - 0x30]
dec dword [ebp - 0x80]
jne 0x53341d
cmp byte [ebp - 0x61], 0
je 0x533702
mov ax, word [0x5352a8]
push eax
xor ecx, ecx
mov edx, dword [0x5c51f8]
mov eax, 0x5352b4
call fcn.00449a38
cmp eax, 6
jne 0x533702
mov eax, dword [0x5c83f0]
dec eax
test eax, eax
jl 0x5336fb
inc eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x30], 0
mov esi, dword [ebp - 0x30]
lea esi, [esi + esi*4]
cmp dword [ebx + esi*8 + 8], 0
jne 0x5336ef
mov eax, dword [ebx + esi*8 + 0x10]
mov dword [ebx + esi*8 + 8], eax
push 0x5353a8
lea eax, [ebp - 0x88]
lea edx, [ebx + esi*8]
mov ecx, 8
call fcn.00403c3c
push dword [ebp - 0x88]
push 0x535288
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x30]
call fcn.00407460
push dword [ebp - 0x8c]
push 0x5353dc
mov eax, dword [ebx + esi*8 + 8]
lea ecx, [ebp - 0x94]
mov edx, 8
call fcn.00407490
push dword [ebp - 0x94]
push 0x5353e8
mov eax, dword [ebx + esi*8 + 8]
lea edx, [ebp - 0x98]
call fcn.00407460
push dword [ebp - 0x98]
push 0x5353f4
lea eax, [ebp - 0x84]
mov edx, 9
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
mov eax, dword [ebx + esi*8 + 0x24]
and eax, 0xe0
cmp eax, 0x80
jne 0x5336ef
xor eax, eax
mov dword [ebx + esi*8 + 0x10], eax
push 0x535400
lea eax, [ebp - 0x88]
lea edx, [ebx + esi*8]
mov ecx, 8
call fcn.00403c3c
push dword [ebp - 0x88]
push 0x535288
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x30]
call fcn.00407460
push dword [ebp - 0x8c]
push 0x5353dc
mov eax, dword [ebx + esi*8 + 0x10]
lea ecx, [ebp - 0x94]
mov edx, 8
call fcn.00407490
push dword [ebp - 0x94]
push 0x5353e8
mov eax, dword [ebx + esi*8 + 0x10]
lea edx, [ebp - 0x98]
call fcn.00407460
push dword [ebp - 0x98]
push 0x5353f4
lea eax, [ebp - 0x84]
mov edx, 9
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
cmp dword [ebx + esi*8 + 0x14], 0
jne 0x5336ef
cmp dword [ebp - 0x30], 0
jne 0x533650
mov eax, dword [0x5c83c0]
mov dword [ebx + esi*8 + 0x14], eax
jmp 0x53365c
mov eax, dword [ebx + esi*8 - 0x14]
add eax, dword [ebx + esi*8 - 0x18]
mov dword [ebx + esi*8 + 0x14], eax
push 0x535434
lea eax, [ebp - 0x88]
lea edx, [ebx + esi*8]
mov ecx, 8
call fcn.00403c3c
push dword [ebp - 0x88]
push 0x535288
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x30]
call fcn.00407460
push dword [ebp - 0x8c]
push 0x5353dc
mov eax, dword [ebx + esi*8 + 0x14]
lea ecx, [ebp - 0x94]
mov edx, 8
call fcn.00407490
push dword [ebp - 0x94]
push 0x5353e8
mov eax, dword [ebx + esi*8 + 0x14]
lea edx, [ebp - 0x98]
call fcn.00407460
push dword [ebp - 0x98]
push 0x5353f4
lea eax, [ebp - 0x84]
mov edx, 9
call fcn.00403d4c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
call fcn.005287d8
inc dword [ebp - 0x30]
dec dword [ebp - 0x80]
jne 0x5334db
mov byte [0x5c51d8], 1
mov ebx, dword [0x5c83f0]
shl ebx, 3
lea ebx, [ebx + ebx*4]
push 4
push 0x1000
push ebx
push 0
call fcn.004059b8
mov dword [0x5c83f4], eax
mov eax, dword [0x5c83f4]
xor ecx, ecx
mov edx, ebx
call fcn.00402b14
mov eax, dword [0x5c8318]
mov edx, dword [ebp - 0x40]
add eax, edx
mov edx, dword [0x5c83f4]
mov ecx, ebx
call fcn.004027e0
mov dword [0x5c83ec], ebx
mov ebx, dword [0x5c83f0]
shl ebx, 3
lea ebx, [ebx + ebx*2]
push 4
push 0x1000
push ebx
push 0
call fcn.004059b8
mov dword [0x5c847c], eax
mov eax, dword [0x5c847c]
xor ecx, ecx
mov edx, ebx
call fcn.00402b14
mov ebx, dword [0x5c83f0]
shl ebx, 2
lea ebx, [ebx + ebx*8]
push 4
push 0x1000
push ebx
push 0
call fcn.004059b8
mov dword [0x5c8400], eax
mov eax, dword [0x5c8400]
xor ecx, ecx
mov edx, ebx
call fcn.00402b14
xor eax, eax
mov dword [0x5c83fc], eax
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 0x14]
lea ecx, [ebp - 0x84]
mov edx, 8
call fcn.00407490
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x23c]
call fcn.00422154
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov ebx, dword [edx + eax*8 + 0x14]
mov eax, ebx
cdq
idiv dword [ebp - 0x78]
imul dword [ebp - 0x78]
mov ebx, eax
test ebx, ebx
jne 0x53380d
mov ebx, dword [0x5c83c0]
mov dword [ebp - 0x74], ebx
push 4
push 0x1000
push ebx
push 0
call fcn.004059b8
mov dword [0x5c8368], eax
mov eax, dword [0x5c8368]
xor ecx, ecx
mov edx, ebx
call fcn.00402b14
mov edx, dword [0x5c8368]
mov eax, dword [0x5c8318]
mov ecx, ebx
call fcn.004027e0
mov dword [0x5c8360], ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x238]
mov eax, dword [eax + 0x130]
call fcn.004831cc
xor eax, eax
mov dword [0x5c8480], eax
mov esi, 0x535464
mov edi, 0x5c8484
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [0x5c66fc]
mov eax, dword [eax]
sub eax, dword [0x5c83a0]
sub eax, dword [0x5c839c]
mov edx, dword [0x5c6908]
mov dword [edx], eax
mov eax, dword [0x5c6ea8]
mov eax, dword [eax]
mov edx, dword [0x5c6178]
sub eax, dword [edx]
mov edx, dword [0x5c6330]
mov edx, dword [edx]
mov ecx, dword [0x5c63d0]
sub edx, dword [ecx]
add eax, edx
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x533947
mov eax, dword [0x5c6438]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6674]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6b6c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c69b8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c615c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6434]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6324]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6470]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6628]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6c88]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c61f0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c64fc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6a60]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6358]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6370]
xor edx, edx
mov dword [eax], edx
pushal
xor eax, eax
mov dword [0x5c5db8], eax
mov esi, 0x5c5dc4
mov esi, dword [esi]
mov ebx, dword [esi]
mov edi, 0x5c5dc8
mov eax, 0x53a1e394
xor ebx, eax
mov dword [edi], ebx
popal
xor eax, eax
mov dword [ebp - 0x7c], eax
mov eax, dword [0x5c83f0]
dec eax
test eax, eax
jl 0x5339ce
inc eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x30]
lea ebx, [ebx + ebx*4]
mov eax, dword [0x5c83f4]
mov eax, dword [eax + ebx*8 + 8]
mov edx, dword [0x5c83a4]
call fcn.00527e80
test eax, eax
jne 0x5339b4
mov eax, dword [0x5c83f4]
mov eax, dword [eax + ebx*8 + 0x10]
mov edx, dword [0x5c83a4]
call fcn.00527e80
mov edx, dword [0x5c83f4]
add eax, dword [edx + ebx*8 + 0xc]
cmp eax, dword [ebp - 0x7c]
jle 0x5339c6
mov dword [ebp - 0x7c], eax
inc dword [ebp - 0x30]
dec dword [ebp - 0x80]
jne 0x533982
xor eax, eax
mov dword [0x5c845c], eax
xor eax, eax
mov dword [0x5c8460], eax
mov eax, dword [0x5c83f0]
dec eax
test eax, eax
jl 0x5340f1
inc eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x30]
lea ebx, [ebx + ebx*2]
mov eax, dword [0x5c847c]
xor edx, edx
mov dword [eax + ebx*8], edx
lea ecx, [ebp - 0x84]
mov edx, 4
mov eax, dword [ebp - 0x30]
call fcn.00407490
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x88]
mov esi, dword [ebp - 0x30]
lea esi, [esi + esi*4]
mov edx, dword [0x5c83f4]
lea edx, [edx + esi*8]
mov ecx, 8
call fcn.00403c3c
mov edx, dword [ebp - 0x88]
pop eax
call fcn.00403c94
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 0x198]
mov ecx, 0xff
call fcn.00403c68
lea edx, [ebp - 0x198]
mov eax, dword [0x5c847c]
lea eax, [eax + ebx*8 + 4]
mov cl, 0x10
call fcn.004029f0
mov eax, dword [0x5c6b7c]
mov eax, dword [eax]
xor eax, 0x4d3412
mov dword [ebp - 0x44], eax
mov eax, dword [0x5c6bfc]
mov eax, dword [eax]
xor eax, 0xa502f3bc
mov dword [ebp - 0x48], eax
mov eax, dword [0x5c83f4]
mov eax, dword [eax + esi*8 + 0x14]
cdq
idiv dword [ebp - 0x78]
mov ebx, eax
imul ebx, dword [ebp - 0x78]
cmp dword [ebp - 0x30], 0
jne 0x533af5
cmp dword [ebp - 0x74], 0
je 0x533af5
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
cmp dword [edx + eax*8 + 0x14], 0
jne 0x533af5
mov eax, dword [0x5c8318]
add eax, dword [ebp - 0x74]
mov edx, dword [0x5c63cc]
mov edx, dword [edx]
not edx
xor edx, 0x883cc625
add eax, edx
mov edx, dword [0x5c83fc]
lea edx, [edx + edx*8]
mov ecx, dword [0x5c8400]
mov dword [ecx + edx*4 + 0x20], eax
jmp 0x533b1d
add ebx, dword [0x5c8318]
mov eax, dword [0x5c63cc]
mov eax, dword [eax]
not eax
xor eax, 0x883cc625
add ebx, eax
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*8]
mov edx, dword [0x5c8400]
mov dword [edx + eax*4 + 0x20], ebx
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
cmp dword [edx + eax*8 + 0x14], 0
je 0x533bc0
mov eax, dword [0x5c69b4]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
mov ecx, dword [0x5c83f4]
lea edx, [ecx + edx*8]
mov ecx, 8
call fcn.00403c3c
mov eax, dword [ebp - 0x84]
push eax
lea eax, [ebp - 0x88]
mov edx, dword [0x5c68dc]
mov ecx, 5
call fcn.00403c3c
mov edx, dword [ebp - 0x88]
pop eax
call fcn.00403d9c
jne 0x533bc0
mov eax, dword [0x5c67bc]
mov edx, dword [ebp - 0x30]
mov dword [eax], edx
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*8]
mov edx, dword [0x5c8400]
mov eax, dword [edx + eax*4 + 0x20]
mov edx, dword [0x5c69b4]
mov dword [edx], eax
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 0x10]
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], 0xffff
call fcn.00527e5c
mov dword [0x5c83f8], eax
mov edx, dword [0x5c83f8]
dec edx
test edx, edx
jl 0x533d58
inc edx
xor eax, eax
mov ecx, dword [0x5c83e8]
cmp dword [ecx + eax*8], 0
je 0x533c35
mov ecx, dword [0x5c83e8]
cmp dword [ecx + eax*8 + 4], 0
je 0x533c35
mov ecx, dword [0x5c83e8]
mov ecx, dword [ecx + eax*8]
cmp ecx, dword [ebp - 0x7c]
jge 0x533c35
mov ecx, dword [0x5c83e8]
cmp dword [ecx + eax*8], 0
jle 0x533c35
mov ecx, dword [0x5c83e8]
mov ecx, dword [ecx + eax*8 + 4]
cmp ecx, dword [0x5c83bc]
jge 0x533c35
mov ecx, dword [0x5c83e8]
cmp dword [ecx + eax*8 + 4], 0
jg 0x533c39
xor ecx, ecx
jmp 0x533c3b
mov cl, 1
mov ebx, eax
cmp ebx, 0xe
ja case.default.0x533c46
jmp dword [ebx*4 + 0x533c4d]
mov byte [0x5c5064], cl
jmp case.default.0x533c46
mov byte [0x5c5068], cl
jmp case.default.0x533c46
mov byte [0x5c506c], cl
jmp case.default.0x533c46
mov byte [0x5c5070], cl
jmp case.default.0x533c46
mov byte [0x5c5074], cl
jmp case.default.0x533c46
mov byte [0x5c5078], cl
cmp byte [0x5c5078], 0
je case.default.0x533c46
mov ecx, dword [0x5c83e8]
mov ecx, dword [ecx + eax*8]
mov dword [0x5c845c], ecx
mov ecx, dword [0x5c83e8]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [0x5c8460], ecx
jmp case.default.0x533c46
mov byte [0x5c5080], cl
jmp case.default.0x533c46
mov byte [0x5c5084], cl
jmp case.default.0x533c46
mov byte [0x5c5088], cl
jmp case.default.0x533c46
mov byte [0x5c508c], cl
jmp case.default.0x533c46
mov byte [0x5c5090], cl
jmp case.default.0x533c46
mov byte [0x5c5094], cl
jmp case.default.0x533c46
mov byte [0x5c5098], cl
jmp case.default.0x533c46
mov byte [0x5c509c], cl
jmp case.default.0x533c46
mov byte [0x5c50a0], cl
mov ecx, dword [0x5c83e8]
mov ecx, dword [ecx + eax*8]
mov ebx, dword [ebp - 0x30]
lea ebx, [ebx + ebx*4]
mov esi, dword [0x5c83f4]
cmp ecx, dword [esi + ebx*8 + 0xc]
jne 0x533d50
mov dword [ebp - 0x34], eax
jmp 0x533d58
inc eax
dec edx
jne 0x533be3
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*8]
mov edx, dword [0x5c8400]
mov byte [edx + eax*4], 1
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*8]
mov edx, dword [0x5c8400]
mov ecx, dword [ebp - 0x30]
mov dword [edx + eax*4 + 4], ecx
mov eax, dword [0x5c83fc]
lea eax, [eax + eax*8]
mov edx, dword [0x5c8400]
mov ecx, dword [ebp - 0x34]
mov dword [edx + eax*4 + 8], ecx
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 8]
mov edx, dword [0x5c6830]
xor eax, dword [edx]
mov edx, dword [0x5c83fc]
lea edx, [edx + edx*8]
mov ecx, dword [0x5c8400]
mov dword [ecx + edx*4 + 0xc], eax
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 0xc]
mov edx, dword [0x5c6830]
xor eax, dword [edx]
mov edx, dword [0x5c83fc]
lea edx, [edx + edx*8]
mov ecx, dword [0x5c8400]
mov dword [ecx + edx*4 + 0x10], eax
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 0x10]
mov edx, dword [0x5c6830]
xor eax, dword [edx]
mov edx, dword [0x5c83fc]
lea edx, [edx + edx*8]
mov ecx, dword [0x5c8400]
mov dword [ecx + edx*4 + 0x14], eax
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
mov edx, dword [0x5c83f4]
mov eax, dword [edx + eax*8 + 0x14]
mov edx, dword [0x5c6830]
xor eax, dword [edx]
mov edx, dword [0x5c83fc]
lea edx, [edx + edx*8]
mov ecx, dword [0x5c8400]
mov dword [ecx + edx*4 + 0x18], eax
mov eax, dword [0x5c67bc]
cmp dword [eax], 0xffffffff
je 0x533ebd
mov eax, dword [0x5c67bc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x30]
jne 0x533ebd
pushal
mov dword [0x5c5db4], 0
mov ebx, dword [0x5c5dbc]
add ebx, 4
mov ecx, dword [ebp - 4]
cmp ecx, ebx
jb 0x533ebc
mov esi, dword [0x5c5db8]
cmp dword [0x5c5dc0], 0
je 0x533ebc
cmp dword [0x5c5db8], 0
je 0x533ebc
mov edi, dword [0x5c5dc0]
sub ebx, 4
add esi, ebx
mov eax, dword [edi]
xor eax, dword [esi]
mov ebx, dword [edi + 4]
xor ebx, dword [esi + 4]
mov ecx, dword [edi + 8]
xor ecx, dword [esi + 8]
mov edx, dword [edi + 0xc]
xor edx, dword [esi + 0xc]
xor eax, ebx
xor ecx, edx
sub eax, ecx
jne 0x533ebc
mov dword [0x5c5db4], 0x405f34
popal
inc dword [0x5c83fc]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x238]
mov eax, dword [eax + 0x130]
call fcn.0048309c
mov ebx, eax
xor edx, edx
mov eax, ebx
call fcn.00482b74
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov dl, 1
mov eax, ebx
call fcn.00482b18
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
mov ecx, dword [0x5c83f4]
lea edx, [ecx + edx*8]
mov ecx, 8
call fcn.00403c3c
mov eax, dword [ebp - 0x84]
mov edx, 0x53547c
call fcn.00403d9c
je 0x533fbe
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
mov ecx, dword [0x5c83f4]
lea edx, [ecx + edx*8]
mov ecx, 8
call fcn.00403c3c
mov eax, dword [ebp - 0x84]
mov edx, 0x53548c
call fcn.00403d9c
je 0x533fbe
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
mov ecx, dword [0x5c83f4]
lea edx, [ecx + edx*8]
mov ecx, 8
call fcn.00403c3c
mov eax, dword [ebp - 0x84]
mov edx, 0x53549c
call fcn.00403d9c
jne 0x5340e5
cmp byte [0x5c4eec], 0
je 0x5340e5
mov eax, dword [0x5c6158]
mov al, byte [eax]
and al, 0xff
mov edx, dword [0x5c6158]
mov edx, dword [edx]
shr edx, 8
and dl, 0xff
xor al, dl
mov edx, dword [0x5c6158]
mov edx, dword [edx]
shr edx, 0x10
and dl, 0xff
xor al, dl
mov edx, dword [0x5c6158]
mov edx, dword [edx]
shr edx, 0x18
and dl, 0xff
xor al, dl
mov edx, dword [0x5c6c70]
cmp dword [edx], 0
jne 0x534023
test al, al
jne 0x534023
cmp dword [ebp - 0x44], 0
jne 0x534023
cmp dword [ebp - 0x48], 0
je 0x5340e5
xor ebx, ebx
push ebp
push 0x5340db
push dword fs:[ebx]
mov dword fs:[ebx], esp
mov dl, byte [ebp - 0x44]
and dl, 0xff
mov ecx, dword [ebp - 0x44]
shr ecx, 8
and cl, 0xff
xor dl, cl
mov ecx, dword [ebp - 0x44]
shr ecx, 0x10
and cl, 0xff
xor dl, cl
mov ecx, dword [ebp - 0x44]
shr ecx, 0x18
and cl, 0xff
xor dl, cl
mov byte [ebp - 0x39], dl
mov dl, byte [ebp - 0x48]
and dl, 0xff
mov ecx, dword [ebp - 0x48]
shr ecx, 8
and cl, 0xff
xor dl, cl
mov ecx, dword [ebp - 0x48]
shr ecx, 0x10
and cl, 0xff
xor dl, cl
mov ecx, dword [ebp - 0x48]
shr ecx, 0x18
and cl, 0xff
xor dl, cl
mov byte [ebp - 0x3a], dl
mov edx, dword [ebp - 0x30]
lea edx, [edx + edx*4]
mov ecx, dword [0x5c83f4]
mov edx, dword [ecx + edx*8 + 0x10]
dec edx
test edx, edx
jl 0x5340cf
inc edx
xor ecx, ecx
mov ebx, dword [ebp - 0x30]
lea ebx, [ebx + ebx*8]
mov esi, dword [0x5c8400]
mov ebx, dword [esi + ebx*4 + 0x20]
mov bl, byte [ebx + ecx]
xor bl, al
xor bl, byte [ebp - 0x39]
xor bl, byte [ebp - 0x3a]
mov esi, dword [ebp - 0x30]
lea esi, [esi + esi*8]
mov edi, dword [0x5c8400]
mov esi, dword [edi + esi*4 + 0x20]
mov byte [esi + ecx], bl
inc ecx
dec edx
jne 0x53409d
pop dword fs:[0]
add esp, 8
jmp 0x5340e5
inc dword [ebp - 0x30]
dec dword [ebp - 0x80]
jne 0x5339f5
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
pushal
jmp 0x534113
mov ecx, 0xe8032b14
mov eax, 0x534103
mov edx, dword [eax]
sub edx, ecx
mov dword [ebp - 8], edx
add eax, 4
mov ebx, dword [eax]
sub ebx, ecx
sub ebx, edx
dec ebx
mov dword [ebp - 0xc], ebx
add eax, 4
mov ebx, dword [eax]
sub ebx, ecx
mov dword [ebp - 0x10], ebx
popal
push 0x40
push 0x1000
mov eax, dword [ebp - 0xc]
push eax
push 0
call fcn.004059b8
mov dword [ebp - 0x5c], eax
push 0x40
push 0x1000
mov eax, dword [ebp - 0xc]
push eax
push 0
call fcn.004059b8
mov dword [ebp - 0x60], eax
xor eax, eax
push ebp
push 0x534280
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov edx, dword [ebp - 0xc]
call fcn.00402b14
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov edx, dword [ebp - 0xc]
call fcn.00402b14
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
call fcn.004027e0
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
call fcn.004027e0
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x60]
call fcn.005a299c
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
call fcn.0040704c
test al, al
jne 0x534252
mov eax, dword [0x5c6438]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6674]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6b6c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c69b8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c615c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6434]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6324]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6470]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6628]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6c88]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c61f0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c64fc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6a60]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6358]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5c6370]
xor edx, edx
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x534287
push 0x8000
push 0
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004059c0
push 0x8000
push 0
mov eax, dword [ebp - 0x60]
push eax
call fcn.004059c0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x534d95
lea eax, [ebp - 0x98]
mov edx, 2
call fcn.00403a34
lea eax, [ebp - 0x90]
call fcn.00403a10
lea eax, [ebp - 0x8c]
mov edx, 3
call fcn.00403a34
lea eax, [ebp - 0x68]
call fcn.00403a10
lea eax, [ebp - 0x2c]
call fcn.00403a10
ret