Function at 0x4ccba0
Capabilities:
Copy file
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xe8
push 0
push 0
dec ecx
jne 0x4ccba9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x524], ecx
mov dword [ebp - 0x520], edx
mov dword [ebp - 0x518], eax
xor eax, eax
push ebp
push 0x4cf924
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
call fcn.006204a4
call fcn.004c3e38
mov dword [ebp - 0x528], eax
call fcn.00650c50
mov edx, dword [0x673354]
mov dword [edx], eax
call fcn.00650ca0
mov edx, dword [0x6728a0]
mov dword [edx], eax
call fcn.00650ca0
mov dword [ebp - 0x454], eax
lea eax, [ebp - 0x6c4]
mov ecx, 0x4cf93c
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
call fcn.00624f1c
mov eax, dword [0x67320c]
mov al, byte [eax]
mov byte [ebp - 0x555], al
mov eax, dword [0x67320c]
mov byte [eax], 0x2e
xor eax, eax
mov dword [ebp - 0x43c], eax
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.00651de8
mov dword [ebp - 0x41c], eax
call fcn.00650ca0
mov dword [ebp - 0x570], eax
call fcn.00650ca0
mov dword [ebp - 0x578], eax
call fcn.00650ca0
mov dword [ebp - 0x57c], eax
mov eax, dword [ebp - 0x57c]
mov byte [eax + 0x28], 1
call fcn.00651de8
mov dword [ebp - 0x530], eax
call fcn.00651de8
mov dword [ebp - 0x564], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.005c004c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.005fb9a4
and eax, 0x3ff
mov dword [ebp - 0x54c], eax
lea eax, [ebp - 0x4a0]
mov edx, 2
call fcn.00403804
mov eax, dword [ebp - 0x4a0]
mov word [eax], 0x6e65
mov ebx, 0x47
mov eax, dword [0x672a64]
mov dword [ebp - 0x628], eax
mov eax, dword [0x672950]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x628]
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x54c]
jne 0x4ccd1a
mov eax, dword [ebp - 0x62c]
mov ax, word [eax]
mov edx, dword [ebp - 0x4a0]
mov word [edx], ax
jmp 0x4ccd2a
add dword [ebp - 0x62c], 2
inc dword [ebp - 0x628]
dec ebx
jne 0x4cccf5
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.005e5c7c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x598]
mov ebx, dword [eax + 0x18]
dec ebx
cmp ebx, 0
jl 0x4ccd65
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x598]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [eax + 0x34], ebx
dec ebx
cmp ebx, 0xffffffff
jne 0x4ccd4a
xor eax, eax
mov dword [ebp - 0x538], eax
xor eax, eax
mov dword [ebp - 0x534], eax
call fcn.00650c50
mov dword [ebp - 0x430], eax
call fcn.00650ca0
mov dword [ebp - 0x4a4], eax
call fcn.00651de8
mov dword [ebp - 0x514], eax
call fcn.00651de8
mov dword [ebp - 0x434], eax
call fcn.00651de8
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x428], 0x7fffffff
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov ebx, dword [eax + 0x18]
dec ebx
cmp ebx, 0
jl 0x4cce18
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
call fcn.00555994
mov dword [ebp - 0x598], eax
mov eax, dword [ebp - 0x598]
call fcn.00628914
test al, al
je 0x4cce12
mov eax, dword [ebp - 0x598]
mov edx, dword [eax + 0xc]
dec edx
mov eax, dword [ebp - 0x428]
call fcn.00656b70
mov dword [ebp - 0x428], eax
dec ebx
cmp ebx, 0xffffffff
jne 0x4ccdcb
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x51c], 1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 1
call fcn.00566a98
mov dword [ebp - 0x548], eax
cmp ebx, dword [ebp - 0x548]
jge 0x4cd000
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
mov esi, eax
push ebp
mov edx, dword [ebp - 0x564]
mov eax, ebx
call fcn.004cc290
pop ecx
mov byte [ebp - 0x591], al
inc ebx
cmp byte [ebp - 0x591], 0
jne 0x4ccf55
jmp 0x4cce89
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
add esi, eax
inc ebx
cmp ebx, dword [ebp - 0x548]
jge 0x4ccf09
push ebp
mov eax, ebx
call fcn.004c7178
pop ecx
cmp eax, 9
jne 0x4ccf09
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
add eax, esi
cmp eax, dword [ebp - 0x518]
jle 0x4ccee9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
cmp byte [eax + 0x3c], 0
je 0x4ccf09
lea ecx, [ebp - 0x6e4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005f2e04
cmp ebx, dword [ebp - 0x6e4]
jle 0x4ccf09
push ebp
xor edx, edx
mov eax, ebx
call fcn.004cc290
pop ecx
test al, al
jne 0x4ccf09
push ebp
mov eax, ebx
call fcn.004cc5a4
pop ecx
test al, al
je 0x4cce79
cmp ebx, dword [ebp - 0x548]
jge 0x4ccf55
mov eax, ebx
sub eax, edi
dec eax
jne 0x4ccf55
push ebp
mov eax, edi
call fcn.004c7274
pop ecx
test al, al
je 0x4ccf55
push ebp
mov edx, dword [ebp - 0x564]
mov eax, ebx
call fcn.004cc290
pop ecx
test al, al
je 0x4ccf55
mov edx, ebx
mov eax, dword [ebp - 0x434]
call fcn.00652038
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
add esi, eax
inc ebx
lea edx, [ebp - 0x6e8]
mov eax, dword [ebp - 0x51c]
call fcn.004cc73c
mov edx, dword [ebp - 0x6e8]
mov ecx, edi
mov eax, dword [ebp - 0x430]
call fcn.00652c30
mov edx, esi
mov eax, dword [ebp - 0x514]
call fcn.00652038
inc dword [ebp - 0x51c]
cmp byte [ebp - 0x591], 0
je 0x4ccfb1
mov edx, edi
mov eax, dword [ebp - 0x434]
call fcn.00652038
xor edx, edx
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
jmp 0x4ccff2
push ebp
mov eax, edi
call fcn.004c7178
pop ecx
cmp eax, 9
jne 0x4ccfce
xor edx, edx
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x4ccff2
lea ecx, [ebp - 0x6c4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, edi
call fcn.005c42b0
mov edx, dword [ebp - 0x6c4]
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov edi, ebx
cmp ebx, dword [ebp - 0x548]
jl 0x4cce45
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.004c5d80
mov dword [ebp - 0x59c], eax
xor eax, eax
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x49c], 0x80000000
mov eax, dword [ebp - 0x59c]
mov ebx, dword [eax + 0x18]
dec ebx
cmp ebx, 0
jl 0x4cd076
mov eax, dword [ebp - 0x59c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x5a0], eax
mov eax, dword [ebp - 0x5a0]
cmp byte [eax + 4], 0
je 0x4cd070
mov eax, dword [ebp - 0x5a0]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x44c], eax
mov eax, dword [ebp - 0x5a0]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x49c], eax
jmp 0x4cd076
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd032
mov eax, dword [ebp - 0x59c]
call fcn.00652408
mov eax, dword [ebp - 0x430]
mov ebx, dword [eax + 0x24]
dec ebx
cmp ebx, 1
jl 0x4cd13a
push ebp
mov eax, ebx
call fcn.004c7340
pop ecx
test al, al
jne 0x4cd131
push ebp
mov eax, ebx
dec eax
call fcn.004c7340
pop ecx
test al, al
jne 0x4cd131
mov edx, ebx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
push ebp
mov eax, esi
dec eax
call fcn.004c7178
pop ecx
mov dword [ebp - 0x550], eax
push ebp
mov eax, esi
call fcn.004c7178
pop ecx
mov dword [ebp - 0x554], eax
cmp dword [ebp - 0x550], 9
je 0x4cd131
cmp dword [ebp - 0x554], 9
je 0x4cd131
mov eax, dword [ebp - 0x550]
cmp eax, dword [ebp - 0x554]
jge 0x4cd131
push ebp
mov eax, esi
call fcn.004cc5a4
pop ecx
test al, al
jne 0x4cd131
mov edx, esi
mov eax, dword [ebp - 0x480]
call fcn.00652038
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x14]
lea eax, [eax + ebx*4]
mov edx, 0x4cf94c
call fcn.004032c8
dec ebx
test ebx, ebx
jne 0x4cd094
push ebp
call fcn.004cc760
pop ecx
mov eax, dword [ebp - 0x520]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x430]
mov ebx, dword [eax + 0x24]
dec ebx
cmp ebx, 1
jl 0x4cd1f6
push ebp
mov eax, ebx
call fcn.004c7340
pop ecx
test al, al
jne 0x4cd18b
push ebp
mov edx, ebx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.004cc5a4
pop ecx
test al, al
jne 0x4cd18b
mov eax, dword [ebp - 0x520]
inc dword [eax]
push ebp
mov eax, ebx
call fcn.004c731c
pop ecx
test al, al
je 0x4cd1ed
mov esi, ebx
dec esi
jmp 0x4cd19e
dec esi
push ebp
mov eax, esi
call fcn.004c731c
pop ecx
test al, al
jne 0x4cd19d
mov edx, ebx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, eax
lea ecx, [ebp - 0x6e8]
mov eax, 0x4cf950
call fcn.006592b4
mov ecx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x14]
lea eax, [eax + ebx*4]
call fcn.00403568
dec ebx
test ebx, ebx
jne 0x4cd15e
mov eax, dword [ebp - 0x4a4]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x5a4], eax
mov eax, dword [ebp - 0x5a4]
cmp dword [eax], 0
jne 0x4cd368
push ebp
xor eax, eax
call fcn.004c7274
pop ecx
test al, al
jne 0x4cd368
mov eax, dword [ebp - 0x430]
cmp dword [eax + 0x24], 1
jne 0x4cd249
mov eax, dword [ebp - 0x5a4]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx]
call fcn.004038bc
jmp 0x4cd368
mov eax, dword [ebp - 0x54c]
add eax, 0xfffffff9
cmp eax, 0x16
ja case.0x4cd261.7
mov al, byte [eax + 0x4cd268]
jmp dword [eax*4 + 0x4cd27f]
lea eax, [ebp - 0x588]
mov edx, 0x4cf960
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf974
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf988
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf99c
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf9b4
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf9c8
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf9e4
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cf9fc
call fcn.0040330c
jmp 0x4cd346
lea eax, [ebp - 0x588]
mov edx, 0x4cfa10
call fcn.0040330c
lea edx, [ebp - 0x6c4]
mov eax, dword [ebp - 0x588]
call fcn.0065829c
mov edx, dword [ebp - 0x6c4]
mov eax, dword [ebp - 0x5a4]
call fcn.004038bc
mov dword [ebp - 0x490], 0xffffffff
mov dword [ebp - 0x494], 0xffffffff
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x130]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 4]
add eax, dword [edx + 0x134]
test eax, eax
jle 0x4cd52b
mov ebx, edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 2
call fcn.00566abc
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x51c], 1
cmp ebx, dword [ebp - 0x548]
jg 0x4cd51b
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
mov esi, eax
inc ebx
jmp 0x4cd3e9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
add esi, eax
inc ebx
cmp ebx, dword [ebp - 0x548]
jg 0x4cd408
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.005c0310
add eax, esi
cmp eax, dword [ebp - 0x518]
jle 0x4cd3d9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 1
call fcn.00566a98
cmp edi, eax
jne 0x4cd4d1
mov byte [ebp - 0x592], 1
mov eax, dword [ebp - 0x430]
mov edx, dword [eax + 0x24]
dec edx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
mov eax, edi
dec eax
sub eax, esi
jl 0x4cd469
inc eax
mov dword [ebp - 0x5a8], eax
push ebp
mov eax, esi
call fcn.004c7178
pop ecx
cmp eax, 9
jne 0x4cd460
mov byte [ebp - 0x592], 0
jmp 0x4cd469
inc esi
dec dword [ebp - 0x5a8]
jne 0x4cd449
cmp byte [ebp - 0x592], 0
je 0x4cd4a0
mov eax, dword [ebp - 0x430]
mov edx, dword [eax + 0x24]
dec edx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
mov eax, dword [ebp - 0x430]
mov edx, dword [eax + 0x24]
dec edx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x4cd4ad
xor edx, edx
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edx, 0x4cfa1c
mov ecx, edi
mov eax, dword [ebp - 0x430]
call fcn.00652c54
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
dec eax
mov dword [ebp - 0x490], eax
jmp 0x4cd507
lea ecx, [ebp - 0x6e8]
mov eax, 0x4cfa28
mov edx, dword [ebp - 0x51c]
call fcn.006592b4
mov edx, dword [ebp - 0x6e8]
mov ecx, edi
mov eax, dword [ebp - 0x430]
call fcn.00652c30
xor edx, edx
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc dword [ebp - 0x51c]
mov edi, ebx
cmp ebx, dword [ebp - 0x548]
jle 0x4cd3c7
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
dec eax
mov dword [ebp - 0x494], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 2
call fcn.00566abc
mov ecx, eax
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x430]
call fcn.00652c30
lea eax, [ebp - 0x47c]
push eax
lea edx, [ebp - 0x6e4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.005c8ab4
lea ecx, [ebp - 0x6e4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
xor edx, edx
call fcn.005c7eb4
cmp word [ebp - 0x476], 1
jne 0x4cd588
cmp word [ebp - 0x478], 0xf0
je 0x4cd58c
xor eax, eax
jmp 0x4cd58e
mov al, 1
mov byte [ebp - 0x43d], al
mov ebx, 9
xor eax, eax
mov al, bl
imul eax, eax, 0xd
lea esi, [ebp + eax*8 - 0x414]
mov ecx, 0x28
mov dl, 1
mov eax, dword [0x61ab78]
call fcn.00629e08
mov dword [esi], eax
mov ecx, 0x60
mov dl, 1
mov eax, dword [0x61ab78]
call fcn.00629e08
mov dword [esi + 4], eax
call fcn.00651de8
mov dword [esi + 0x64], eax
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd599
mov ecx, 0x30
mov dl, 1
mov eax, dword [0x61ab78]
call fcn.00629e08
mov dword [ebp - 0x484], eax
call fcn.00651de8
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 2
call fcn.00566abc
mov dword [ebp - 0x548], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x604]
cmp dword [eax + 0x18], 0
jle 0x4cd90a
mov eax, dword [0x671910]
test byte [eax + 0xc], 0x80
jne 0x4cd90a
mov ebx, dword [ebp - 0x548]
cmp ebx, 0
jl 0x4cd6a2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x5ac]
cmp dword [eax + 0x37], 0
je 0x4cd69c
mov eax, dword [ebp - 0x5ac]
mov eax, dword [eax + 0x37]
xor edx, edx
call fcn.00564d18
test al, al
je 0x4cd69c
mov eax, dword [ebp - 0x5ac]
mov eax, dword [eax + 0x37]
cmp dword [eax + 0x14], 1
jne 0x4cd69c
mov eax, dword [ebp - 0x5ac]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x42c]
call fcn.00652050
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd641
mov eax, dword [ebp - 0x42c]
mov ebx, dword [eax + 0x18]
dec ebx
cmp ebx, 0
jl 0x4cd73b
mov eax, dword [ebp - 0x42c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
add eax, 0x14
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x5b0]
mov eax, dword [eax + 4]
sub eax, 5
jb 0x4cd6dd
sub eax, 0x11
jne 0x4cd724
lea eax, [ebp - 0x6e8]
mov edx, dword [ebp - 0x5b0]
mov edx, dword [edx + 0x94]
call fcn.004034e4
mov eax, dword [ebp - 0x6e8]
mov edx, 0x4cfa40
call fcn.0040362c
jne 0x4cd715
mov eax, dword [ebp - 0x5b0]
cmp byte [eax + 0x91], 0
je 0x4cd731
mov edx, ebx
mov eax, dword [ebp - 0x42c]
call fcn.006520e4
jmp 0x4cd731
mov edx, ebx
mov eax, dword [ebp - 0x42c]
call fcn.006520e4
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd6b5
mov eax, dword [ebp - 0x42c]
cmp dword [eax + 0x18], 0
jle 0x4cd82a
mov ebx, dword [ebp - 0x548]
cmp ebx, 0
jl 0x4cd82a
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x5b4], eax
mov eax, dword [ebp - 0x5b4]
cmp dword [eax + 0x37], 0
je 0x4cd820
mov eax, dword [ebp - 0x5b4]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x42c]
call fcn.006521b4
test al, al
je 0x4cd820
mov eax, dword [ebp - 0x5b4]
mov eax, dword [eax + 0x37]
mov al, byte [eax + 0xb]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 0x5b4]
movsx edx, byte [edx + 0x3b]
imul edx
test eax, eax
jg 0x4cd80c
mov eax, dword [ebp - 0x5b4]
cmp word [eax + 0x1c], 0
jge 0x4cd80c
mov eax, dword [ebp - 0x5b4]
mov eax, dword [eax + 0x37]
cmp dword [eax + 0x14], 1
jne 0x4cd80c
test ebx, ebx
jle 0x4cd820
mov eax, dword [ebp - 0x5b4]
cmp dword [eax + 0x7c], 1
jle 0x4cd820
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4 - 4]
mov eax, dword [eax + 0x37]
mov edx, dword [ebp - 0x5b4]
cmp eax, dword [edx + 0x37]
je 0x4cd820
mov eax, dword [ebp - 0x5b4]
mov edx, dword [eax + 0x37]
mov eax, dword [ebp - 0x42c]
call fcn.00652120
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd75a
mov eax, dword [ebp - 0x548]
test eax, eax
jl 0x4cd90a
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
push ebp
mov eax, ebx
call fcn.004c71f0
pop ecx
test al, al
je 0x4cd8fd
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x5b8], eax
mov eax, dword [ebp - 0x5b8]
mov eax, dword [eax + 0x37]
mov dword [ebp - 0x5bc], eax
mov eax, dword [ebp - 0x5b8]
lea esi, [eax + 0x1c]
lea edi, [ebp - 0x6c0]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x6c0]
call fcn.004c60e4
mov eax, dword [ebp - 0x5bc]
mov al, byte [eax + 0xb]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 0x5b8]
movsx edx, byte [edx + 0x3b]
imul edx
mov dword [ebp - 0x694], eax
mov eax, dword [ebp - 0x5bc]
mov al, byte [eax + 0xb]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 0x5b8]
movsx edx, byte [edx + 0x3b]
imul edx
imul eax, eax, 0x2b
mov edx, dword [ebp - 0x5bc]
mov eax, dword [edx + eax*4 + 0x18]
mov dword [ebp - 0x698], eax
lea edx, [ebp - 0x6c0]
mov ecx, 1
mov eax, dword [ebp - 0x484]
call fcn.00629e44
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cd841
mov eax, dword [ebp - 0x548]
test eax, eax
jl 0x4cdcd1
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + ebx*4]
push edi
lea esi, [edi + 0x1c]
lea edi, [ebp - 0x47c]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
lea eax, [ebp - 0x47c]
call fcn.004c60b4
mov edx, ebx
mov eax, dword [ebp - 0x434]
call fcn.006521b4
test al, al
je 0x4cd97c
mov word [ebp - 0x46c], 0
mov word [ebp - 0x46a], 0
mov byte [ebp - 0x472], 1
jmp 0x4cd9c5
cmp word [ebp - 0x46c], 0xffec
jne 0x4cd9af
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov edx, ebx
call fcn.00566a44
mov edx, eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.00566a98
cmp ebx, eax
jne 0x4cd9af
mov word [ebp - 0x46c], 0
jmp 0x4cd9ba
mov ax, word [edi + 0x44]
mov word [ebp - 0x46c], ax
mov ax, word [edi + 0x46]
mov word [ebp - 0x46a], ax
push ebp
mov eax, ebx
call fcn.004c605c
pop ecx
and eax, 0x7f
imul eax, eax, 0xd
mov eax, dword [ebp + eax*8 - 0x414]
lea edx, [ebp - 0x47c]
mov ecx, 1
call fcn.00629e44
cmp dword [edi + 0x37], 0
je 0x4cdaa9
push ebp
mov eax, ebx
call fcn.004c71f0
pop ecx
test al, al
jne 0x4cdaa9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov dl, 0x59
call fcn.00567f08
lea eax, [ebp - 0x500]
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + ebx*4]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
xor ecx, ecx
call fcn.005c8234
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
call fcn.00567fbc
mov eax, dword [edi + 0x48]
call fcn.006517cc
mov dword [ebp - 0x48c], eax
mov esi, 0x16
lea eax, [ebp - 0x4a8]
mov dword [ebp - 0x630], eax
mov eax, dword [ebp - 0x630]
mov eax, dword [eax]
push eax
mov ecx, esi
mov eax, dword [edi + 0x48]
xor edx, edx
call fcn.0062a4b4
dec esi
sub dword [ebp - 0x630], 4
cmp esi, 0xffffffff
jne 0x4cda63
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 8]
push eax
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 0x48]
mov edx, dword [eax + 4]
mov eax, dword [edi + 0x48]
xor ecx, ecx
call fcn.00651b1c
and word [edi + 0xc], 0xfffd
jmp 0x4cdab1
xor eax, eax
mov dword [ebp - 0x48c], eax
mov esi, dword [edi + 0x48]
mov eax, edi
call fcn.0055462c
xor eax, eax
mov dword [ebp - 0x444], eax
xor eax, eax
mov dword [ebp - 0x504], eax
lea eax, [ebp - 0x500]
call fcn.005471cc
push ebp
mov edx, ebx
mov eax, dword [ebp - 0x4c4]
call fcn.004c5f90
pop ecx
mov dword [ebp - 0x4c4], eax
mov byte [ebp - 0x593], 0
jmp 0x4cdc82
mov eax, dword [esi + 4]
add eax, dword [ebp - 0x444]
cmp word [eax], 0
jne 0x4cdc75
mov eax, dword [esi + 4]
add eax, dword [ebp - 0x444]
add eax, 2
mov dword [ebp - 0x5c0], eax
mov eax, dword [ebp - 0x5c0]
mov al, byte [eax]
sub al, 0x17
jae 0x4cdbbd
cmp byte [ebp - 0x593], 0
je 0x4cdb44
mov eax, dword [ebp - 0x5c0]
cmp byte [eax], 0x14
je 0x4cdc6c
cmp dword [ebp - 0x504], 0
jle 0x4cdb5e
push ebp
mov eax, ebx
call fcn.004cbfb8
pop ecx
xor eax, eax
mov dword [ebp - 0x504], eax
mov eax, dword [ebp - 0x5c0]
mov eax, dword [eax + 1]
mov edx, dword [ebp - 0x5c0]
movzx edx, byte [edx]
mov dword [ebp + edx*4 - 0x500], eax
mov eax, dword [ebp - 0x5c0]
cmp byte [eax], 0xf
jne 0x4cdb9f
push ebp
mov eax, dword [ebp - 0x5c0]
mov eax, dword [eax + 1]
mov edx, ebx
call fcn.004c5f90
pop ecx
mov dword [ebp - 0x4c4], eax
jmp 0x4cdc6c
mov eax, dword [ebp - 0x5c0]
mov eax, dword [eax + 1]
mov edx, dword [ebp - 0x5c0]
movzx edx, byte [edx]
mov dword [ebp + edx*4 - 0x500], eax
jmp 0x4cdc6c
mov eax, dword [ebp - 0x5c0]
mov al, byte [eax]
add al, 0xe9
sub al, 5
jae 0x4cdbd6
inc dword [ebp - 0x504]
jmp 0x4cdc6c
mov eax, dword [ebp - 0x5c0]
cmp byte [eax], 0x1c
jne 0x4cdc4b
mov eax, dword [ebp - 0x5c0]
mov eax, dword [eax + 1]
mov dword [ebp - 0x5c4], eax
mov eax, dword [ebp - 0x5c4]
mov al, byte [eax + 4]
sub al, 3
je 0x4cdc03
sub al, 5
je 0x4cdc42
jmp 0x4cdc6c
mov eax, dword [ebp - 0x5c4]
test byte [eax + 7], 1
je 0x4cdc6c
mov eax, dword [ebp - 0x5c4]
mov eax, dword [eax + 0x44]
movzx eax, byte [eax + 6]
inc dword [ebp + eax*4 - 0x538]
mov eax, dword [ebp - 0x5c4]
mov eax, dword [eax + 0x44]
movzx eax, byte [eax + 6]
mov eax, dword [ebp + eax*4 - 0x538]
mov edx, dword [ebp - 0x5c4]
mov dword [edx + 0x40], eax
jmp 0x4cdc6c
mov byte [ebp - 0x593], 1
jmp 0x4cdc6c
mov eax, dword [ebp - 0x5c0]
cmp byte [eax], 0x1d
jne 0x4cdc6c
mov eax, dword [ebp - 0x5c0]
mov eax, dword [eax + 1]
cmp byte [eax + 4], 8
jne 0x4cdc6c
mov byte [ebp - 0x593], 0
add dword [ebp - 0x444], 9
jmp 0x4cdc82
inc dword [ebp - 0x504]
add dword [ebp - 0x444], 2
mov eax, dword [esi + 8]
cmp eax, dword [ebp - 0x444]
jg 0x4cdaf7
cmp dword [ebp - 0x504], 0
jle 0x4cdca3
push ebp
mov eax, ebx
call fcn.004cbfb8
pop ecx
cmp dword [ebp - 0x48c], 0
je 0x4cdcc4
mov eax, dword [edi + 0x48]
mov edx, dword [ebp - 0x48c]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 0x48c]
call fcn.004028c0
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cd921
mov byte [ebp - 0x415], 0
lea eax, [ebp - 0x414]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 0x5c8], eax
mov eax, dword [ebp - 0x5c8]
mov ebx, dword [eax + 4]
mov eax, dword [ebx + 4]
cmp dword [eax + 0x18], 0
jle 0x4cddc2
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x568], eax
mov eax, dword [ebp - 0x568]
cmp dword [eax + 0x18], 0
jne 0x4cdd3f
mov eax, dword [ebp - 0x568]
cmp dword [eax + 0x10], 0
jne 0x4cdd3f
mov eax, dword [ebp - 0x568]
cmp dword [eax + 0x40], 0xff000000
je 0x4cddaa
mov eax, 0x60
call fcn.00401e58
mov dword [ebp - 0x56c], eax
mov eax, dword [ebp - 0x568]
mov edx, dword [ebp - 0x56c]
mov esi, eax
mov edi, edx
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x56c]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x56c]
xor edx, edx
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x56c]
mov dword [eax + 0x40], 0xff000000
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x56c]
xor edx, edx
call fcn.006520a4
xor eax, eax
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x56c]
mov dword [ebp - 0x568], eax
mov eax, dword [ebp - 0x568]
mov edx, dword [ebp - 0x5c8]
mov esi, eax
lea edi, [edx + 8]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
inc byte [ebp - 0x415]
add dword [ebp - 0x62c], 0x68
cmp byte [ebp - 0x415], 0xa
jne 0x4cdce4
mov eax, dword [0x671c60]
cmp byte [eax + 0x2e], 2
jne 0x4ce07b
mov edx, dword [ebp - 0x578]
mov eax, dword [ebp - 0x570]
call fcn.0062abf8
lea edx, [ebp - 0x6c4]
mov eax, dword [0x671c60]
mov eax, dword [eax + 0x2f]
call fcn.0061d20c
mov eax, dword [ebp - 0x6c4]
call fcn.00650cb4
mov dword [ebp - 0x574], eax
mov dl, 1
mov eax, dword [ebp - 0x574]
call fcn.0065379c
mov byte [ebp - 0x415], 0
lea eax, [ebp - 0x410]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4ce056
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
lea eax, [ebp - 0x580]
mov edx, dword [edi + 4]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + ebx*4]
mov edx, dword [edx]
mov edx, dword [edx + 4]
call fcn.004038bc
mov edx, dword [ebp - 0x580]
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov esi, eax
cmp esi, 0xffffffff
je 0x4ce049
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x5cc], eax
mov eax, dword [ebp - 0x5cc]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x5cc]
mov edx, dword [edx + 0xc]
add edx, edx
or eax, edx
mov dword [ebp - 0x58c], eax
jmp 0x4cdec3
dec esi
test esi, esi
jle 0x4ce01f
mov eax, dword [ebp - 0x570]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + esi*4 - 4]
mov eax, dword [ebp - 0x580]
call fcn.00657744
test eax, eax
je 0x4cdec2
jmp 0x4ce01f
mov edx, esi
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x590], eax
mov edx, dword [ebp - 0x590]
mov eax, dword [ebp - 0x578]
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp eax, dword [ebp - 0x58c]
jne 0x4ce01e
mov edx, esi
mov eax, dword [ebp - 0x530]
call fcn.006521b4
test al, al
jne 0x4ce049
mov eax, dword [ebp - 0x570]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x574]
mov ecx, dword [eax]
call dword [ecx + 0x44]
inc eax
jne 0x4ce049
mov eax, dword [ebp - 0x578]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0x590]
lea eax, [eax + edx*4]
mov dword [ebp - 0x5d0], eax
mov eax, dword [ebp - 0x5d0]
mov edx, dword [eax]
mov eax, dword [ebp - 0x57c]
mov ecx, dword [eax]
call dword [ecx + 0x44]
inc eax
jne 0x4ce00f
lea eax, [ebp - 0x6c4]
mov ecx, 0x4cfa48
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
call fcn.00624f1c
push 0
push dword [ebp - 4]
push 0x4cfa60
lea edx, [ebp - 0x6f0]
mov eax, dword [ebp - 0x5d0]
mov eax, dword [eax]
call fcn.00658904
mov eax, dword [ebp - 0x6f0]
lea ecx, [ebp - 0x6ec]
mov dx, 0x20
call fcn.0065718c
push dword [ebp - 0x6ec]
lea eax, [ebp - 0x6c4]
mov edx, 3
call fcn.00403b88
mov eax, dword [ebp - 0x6c4]
push eax
mov eax, dword [ebp - 0x5d0]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CopyFileW
mov eax, dword [ebp - 0x5d0]
mov edx, dword [eax]
mov eax, dword [ebp - 0x57c]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov edx, esi
mov eax, dword [ebp - 0x530]
call fcn.00652038
jmp 0x4ce049
inc esi
mov eax, dword [ebp - 0x570]
cmp esi, dword [eax + 0x24]
jge 0x4ce049
mov eax, dword [ebp - 0x570]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x580]
call fcn.00657744
test eax, eax
je 0x4cdeec
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cde60
inc byte [ebp - 0x415]
add dword [ebp - 0x62c], 0x68
cmp byte [ebp - 0x415], 0xa
jne 0x4cde40
mov eax, dword [ebp - 0x574]
call fcn.004028c0
call fcn.00650c50
mov dword [ebp - 0x448], eax
call fcn.00650c50
mov dword [ebp - 0x488], eax
call fcn.00650c50
mov dword [ebp - 0x53c], eax
mov eax, dword [ebp - 0x530]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4ce215
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
mov eax, dword [ebp - 0x530]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + ebx*4]
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x590], eax
mov edx, dword [ebp - 0x590]
mov eax, dword [ebp - 0x578]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x58c], eax
push 0x4cfa80
lea ecx, [ebp - 0x6e8]
mov eax, dword [ebp - 0x530]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + ebx*4]
mov eax, dword [ebp - 0x570]
mov esi, dword [eax]
call dword [esi + 0x10]
push dword [ebp - 0x6e8]
push 0x4cfaa4
lea eax, [ebp - 0x544]
mov edx, 3
call fcn.004035dc
test byte [ebp - 0x58c], 2
jne 0x4ce143
lea eax, [ebp - 0x544]
mov edx, 0x4cfabc
call fcn.00403524
jmp 0x4ce153
lea eax, [ebp - 0x544]
mov edx, 0x4cfacc
call fcn.00403524
lea eax, [ebp - 0x544]
mov edx, 0x4cfadc
call fcn.00403524
test byte [ebp - 0x58c], 1
jne 0x4ce17e
lea eax, [ebp - 0x544]
mov edx, 0x4cfabc
call fcn.00403524
jmp 0x4ce18e
lea eax, [ebp - 0x544]
mov edx, 0x4cfaf4
call fcn.00403524
push dword [ebp - 0x544]
push 0x4cfb04
mov eax, dword [ebp - 0x578]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 0x590]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x6ec]
call fcn.00658904
mov eax, dword [ebp - 0x6ec]
lea ecx, [ebp - 0x6c4]
mov dx, 0x20
call fcn.0065718c
mov eax, dword [ebp - 0x6c4]
lea edx, [ebp - 0x6f4]
call fcn.00658264
push dword [ebp - 0x6f4]
push 0x4cfb1c
lea eax, [ebp - 0x6e8]
mov edx, 4
call fcn.004035dc
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4ce0b7
mov eax, dword [0x671c60]
test byte [eax + 1], 4
je 0x4ce2e5
lea eax, [ebp - 0x6f4]
push eax
mov eax, dword [0x671c60]
mov eax, dword [eax + 0x26]
mov dword [ebp - 0x71c], eax
mov byte [ebp - 0x718], 0xb
mov eax, dword [0x671c60]
movzx eax, byte [eax + 0x1d]
mov edx, dword [0x67297c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x714], eax
mov byte [ebp - 0x710], 6
mov eax, dword [0x671c60]
mov eax, dword [eax + 0x22]
mov dword [ebp - 0x70c], eax
mov byte [ebp - 0x708], 0xb
mov eax, dword [0x671c60]
mov eax, dword [eax + 0x2a]
mov dword [ebp - 0x704], eax
mov byte [ebp - 0x700], 0xb
mov eax, dword [0x671c60]
mov eax, dword [eax + 0x1e]
mov dword [ebp - 0x6fc], eax
mov byte [ebp - 0x6f8], 0xb
lea edx, [ebp - 0x71c]
mov eax, 0x4cfb20
mov ecx, 4
call fcn.00659050
mov eax, dword [ebp - 0x6f4]
lea edx, [ebp - 0x6e8]
call fcn.0061f1ec
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edx, 0x4cfb54
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edx, 0x4cfb6c
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov byte [ebp - 0x415], 0
lea eax, [ebp - 0x414]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov ebx, eax
mov esi, dword [ebx]
mov eax, dword [esi + 4]
cmp dword [eax + 0x18], 0
jle 0x4ce5b5
push esi
lea esi, [ebx + 8]
lea edi, [ebp - 0x690]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
pop esi
mov edx, dword [0x6722c8]
lea eax, [ebp - 0x690]
call fcn.0054704c
mov eax, dword [ebx + 8]
mov dword [ebp - 0x690], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x68c], eax
cmp dword [ebx + 0x10], 0
jne 0x4ce36d
mov al, byte [ebp - 0x415]
dec eax
sub al, 9
jae 0x4ce36d
xor eax, eax
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x654], 0
jne 0x4ce380
mov dword [ebp - 0x654], 0x80000000
mov dword [ebp - 0x64c], 0x80000000
mov eax, dword [0x67304c]
movsx eax, word [eax]
mov dword [ebp - 0x634], eax
lea edx, [ebp - 0x584]
mov al, byte [ebp - 0x415]
call fcn.004c6020
push dword [ebp - 0x584]
push 0x4cfba0
push ebp
lea ecx, [ebp - 0x720]
lea eax, [ebp - 0x690]
mov dl, 1
call fcn.004c6690
pop ecx
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x6f4]
call fcn.004c6de4
push dword [ebp - 0x6f4]
push 0x4cfbac
lea eax, [ebp - 0x6e8]
mov edx, 4
call fcn.004035dc
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp byte [ebp - 0x415], 0
jne 0x4ce49a
mov eax, dword [ebp - 0x484]
mov eax, dword [eax + 4]
cmp dword [eax + 0x18], 0
jle 0x4ce49a
mov eax, dword [0x671910]
test byte [eax + 0xc], 0x80
jne 0x4ce49a
mov edx, 0x4cfbb8
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
push ebp
lea ecx, [ebp - 0x6e8]
lea eax, [ebp - 0x690]
mov dl, 1
call fcn.004c6690
pop ecx
mov eax, dword [ebp - 0x6e8]
lea edx, [ebp - 0x6f4]
call fcn.004c6de4
mov edx, dword [ebp - 0x6f4]
lea ecx, [ebp - 0x6e8]
mov eax, 0x4cfbc8
call fcn.0065918c
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edx, 0x4cfbd8
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4ce5b5
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
lea edx, [ebp - 0x47c]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov ecx, 0x28
call fcn.004023c8
mov edx, dword [0x6729a0]
lea eax, [ebp - 0x47c]
call fcn.00547110
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov dx, word [eax]
mov word [ebp - 0x47c], dx
mov dx, word [eax + 2]
mov word [ebp - 0x47a], dx
mov dx, word [eax + 8]
mov word [ebp - 0x474], dx
mov dl, byte [eax + 0xe]
mov byte [ebp - 0x46e], dl
mov dx, word [eax + 0x10]
mov word [ebp - 0x46c], dx
mov ax, word [eax + 0x12]
mov word [ebp - 0x46a], ax
lea eax, [ebp - 0x6e8]
push eax
mov eax, dword [ebp - 0x584]
mov dword [ebp - 0x738], eax
mov byte [ebp - 0x734], 0xb
mov dword [ebp - 0x730], ebx
mov byte [ebp - 0x72c], 0
push ebp
lea edx, [ebp - 0x6e8]
lea eax, [ebp - 0x47c]
call fcn.004c629c
pop ecx
mov eax, dword [ebp - 0x6e8]
lea edx, [ebp - 0x6f4]
call fcn.004c6de4
mov eax, dword [ebp - 0x6f4]
mov dword [ebp - 0x728], eax
mov byte [ebp - 0x724], 0xb
lea edx, [ebp - 0x738]
mov eax, 0x4cfbf8
mov ecx, 2
call fcn.00659050
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4ce4b2
inc byte [ebp - 0x415]
add dword [ebp - 0x62c], 0x68
cmp byte [ebp - 0x415], 0xa
jne 0x4ce308
mov eax, dword [ebp - 0x484]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4ce824
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
mov eax, dword [ebp - 0x484]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + ebx*4]
mov eax, dword [esi + 0x28]
cmp eax, 0x16
ja case.0x4ce60e.0
mov al, byte [eax + 0x4ce615]
jmp dword [eax*4 + 0x4ce62c]
lea eax, [ebp - 0x584]
mov edx, 0x4cfc0c
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc20
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc34
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc48
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc5c
call fcn.0040330c
jmp 0x4ce70c
mov eax, dword [esi + 0x28]
call fcn.00549af0
test al, al
je 0x4ce6fc
mov eax, dword [esi + 0x2c]
mov ecx, 3
cdq
idiv ecx
dec edx
je 0x4ce6c6
dec edx
je 0x4ce6d8
jmp 0x4ce6ea
lea eax, [ebp - 0x584]
mov edx, 0x4cfc7c
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc8c
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfc9c
call fcn.0040330c
jmp 0x4ce70c
lea eax, [ebp - 0x584]
mov edx, 0x4cfcac
call fcn.0040330c
lea ecx, [ebp - 0x6e8]
mov eax, 0x4cfcb4
mov edx, dword [ebp - 0x584]
call fcn.0065918c
mov edx, dword [ebp - 0x6e8]
lea eax, [ebp - 0x584]
call fcn.0040330c
push esi
lea edi, [ebp - 0x47c]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop esi
mov edx, dword [0x6729a0]
lea eax, [ebp - 0x47c]
call fcn.00547110
mov ax, word [esi + 2]
mov word [ebp - 0x47a], ax
mov ax, word [esi + 8]
mov word [ebp - 0x474], ax
mov al, byte [esi + 0xe]
mov byte [ebp - 0x46e], al
mov ax, word [esi + 0x10]
mov word [ebp - 0x46c], ax
mov ax, word [esi + 0x12]
mov word [ebp - 0x46a], ax
mov byte [ebp - 0x415], 0
lea eax, [ebp - 0x6e8]
push eax
mov dword [ebp - 0x748], ebx
mov byte [ebp - 0x744], 0
push ebp
lea edx, [ebp - 0x6f4]
lea eax, [ebp - 0x47c]
call fcn.004c629c
pop ecx
mov ecx, dword [ebp - 0x6f4]
lea eax, [ebp - 0x6e8]
mov edx, dword [ebp - 0x584]
call fcn.00403568
mov eax, dword [ebp - 0x6e8]
lea edx, [ebp - 0x6f4]
call fcn.004c6de4
mov eax, dword [ebp - 0x6f4]
mov dword [ebp - 0x740], eax
mov byte [ebp - 0x73c], 0xb
lea edx, [ebp - 0x748]
mov eax, 0x4cfcc8
mov ecx, 1
call fcn.00659050
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4ce5ed
mov byte [ebp - 0x415], 0
lea eax, [ebp - 0x414]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 0x5d4], eax
mov eax, dword [ebp - 0x5d4]
mov esi, dword [eax + 4]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x4ce996
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
cmp ebx, dword [esi + 0x14]
je 0x4ce989
lea edx, [ebp - 0x690]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov ecx, 0x60
call fcn.004023c8
mov eax, dword [ebp - 0x5d4]
lea edx, [eax + 8]
lea eax, [ebp - 0x690]
call fcn.0054704c
mov eax, dword [ebp - 0x64c]
dec eax
sub eax, 2
jae 0x4ce8b8
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68c], eax
lea eax, [ebp - 0x690]
call fcn.005471e0
test al, al
je 0x4ce8dc
mov eax, dword [ebp - 0x5d4]
mov eax, dword [eax + 0x64]
mov edx, ebx
call fcn.00652038
jmp 0x4ce989
cmp byte [ebp - 0x415], 0
jne 0x4ce8f2
lea eax, [ebp - 0x584]
call fcn.00403274
jmp 0x4ce903
lea edx, [ebp - 0x584]
mov al, byte [ebp - 0x415]
call fcn.004c6020
lea eax, [ebp - 0x6e8]
push eax
mov eax, dword [ebp - 0x584]
mov dword [ebp - 0x738], eax
mov byte [ebp - 0x734], 0xb
mov dword [ebp - 0x730], ebx
mov byte [ebp - 0x72c], 0
push ebp
lea ecx, [ebp - 0x6e8]
lea eax, [ebp - 0x690]
xor edx, edx
call fcn.004c6690
pop ecx
mov eax, dword [ebp - 0x6e8]
lea edx, [ebp - 0x6f4]
call fcn.004c6de4
mov eax, dword [ebp - 0x6f4]
mov dword [ebp - 0x728], eax
mov byte [ebp - 0x724], 0xb
lea edx, [ebp - 0x738]
mov eax, 0x4cfcd4
mov ecx, 2
call fcn.00659050
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4ce864
inc byte [ebp - 0x415]
add dword [ebp - 0x62c], 0x68
cmp byte [ebp - 0x415], 0xa
jne 0x4ce837
mov edx, 0x4cfce8
mov eax, dword [ebp - 0x528]
call fcn.004c43dc
mov dword [ebp - 0x52c], eax
mov ecx, 0x4cfcf8
mov edx, 0x4cfd20
mov eax, dword [ebp - 0x52c]
call fcn.004c41c0
mov ecx, 0x4cfd30
mov edx, 0x4cfd3c
mov eax, dword [ebp - 0x52c]
call fcn.004c41c0
mov ecx, 0x4cfd4c
mov edx, 0x4cfd5c
mov eax, dword [ebp - 0x52c]
call fcn.004c41c0
mov edx, 0x4cfd78
mov eax, dword [ebp - 0x52c]
call fcn.004c43dc
mov dword [ebp - 0x5d8], eax
mov ecx, 0x4cfd8c
mov edx, 0x4cfdb8
mov eax, dword [ebp - 0x5d8]
call fcn.004c41c0
mov ecx, 0x4cfcf8
mov edx, 0x4cfdcc
mov eax, dword [ebp - 0x5d8]
call fcn.004c41c0
mov edx, 0x4cfde0
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx]
call fcn.004038bc
mov edx, 0x4cfdf4
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
mov dword [ebp - 0x5dc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 4], 0
jne 0x4cea9c
mov eax, dword [ebp - 0x5dc]
add eax, 0x24
mov edx, 0x4cfe04
call fcn.004038bc
jmp 0x4ceab3
mov eax, dword [ebp - 0x5dc]
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 4]
call fcn.004038bc
lea edx, [ebp - 0x6c4]
mov eax, dword [ebp - 0x5dc]
mov eax, dword [eax + 0x24]
call fcn.004cc300
mov ecx, dword [ebp - 0x6c4]
mov edx, 0x4cfe20
mov eax, dword [ebp - 0x5dc]
call fcn.004c41f0
mov ecx, 0x4cfe34
mov edx, 0x4cfe40
mov eax, dword [ebp - 0x5dc]
call fcn.004c41c0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 8], 0
je 0x4ceb1f
mov edx, 0x4cfe54
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 8]
call fcn.004038bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0xc], 0
je 0x4ceb4c
mov edx, 0x4cfe68
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0xc]
call fcn.004038bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x10], 0
je 0x4ceb79
mov edx, 0x4cfe80
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0x10]
call fcn.004038bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x24], 0
je 0x4ceba6
mov edx, 0x4cfe98
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0x24]
call fcn.004038bc
mov edx, 0x4cfea8
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
mov dword [ebp - 0x5e0], eax
mov ecx, 0x4cfd4c
mov edx, 0x4cfec0
mov eax, dword [ebp - 0x5e0]
call fcn.004c41c0
lea eax, [ebp - 0x540]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0x14]
call fcn.004034e4
cmp dword [ebp - 0x540], 0
jne 0x4cec0f
lea eax, [ebp - 0x6e8]
call fcn.0062054c
mov ecx, dword [ebp - 0x6e8]
lea eax, [ebp - 0x540]
mov edx, 0x4cfecc
call fcn.00403568
mov eax, dword [ebp - 0x5e0]
add eax, 0x24
mov edx, dword [ebp - 0x540]
call fcn.00403a34
mov edx, 0x4cfedc
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp - 0x4a0]
call fcn.00403a34
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x18], 0
je 0x4cec6e
mov edx, 0x4cfef0
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0x18]
call fcn.004038bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x1c], 0
je 0x4cec9b
mov edx, 0x4cff04
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx + 0x1c]
call fcn.004038bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x20], 0
je 0x4ceceb
mov edx, 0x4cff18
mov eax, dword [ebp - 0x5d8]
call fcn.004c43dc
mov dword [ebp - 0x5e4], eax
mov ecx, 0x4cff28
mov edx, 0x4cff38
mov eax, dword [ebp - 0x5e4]
call fcn.004c41c0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax - 0xc]
mov ecx, dword [ecx + 0x20]
mov edx, 0x4cff48
mov eax, dword [ebp - 0x5e4]
call fcn.004c41f0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0xc]
cmp dword [eax + 0x28], 0
je 0x4ced13
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax - 0xc]
mov ecx, dword [ecx + 0x28]
mov eax, dword [ebp - 0x5d8]
add eax, 0x24
mov edx, 0x4cff54
call fcn.00403b24
mov edx, 0x4cff60
mov eax, dword [ebp - 0x52c]
call fcn.004c43dc
mov dword [ebp - 0x420], eax
mov edx, 0x4cff74
mov eax, dword [ebp - 0x420]
call fcn.004c43dc
mov dword [ebp - 0x5e8], eax
mov ecx, 0x4cff84
mov edx, 0x4cfec0
mov eax, dword [ebp - 0x5e8]
call fcn.004c41c0
mov ecx, 0x4cff90
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x5e8]
call fcn.004c41c0
mov ecx, 0x4cffb0
mov edx, 0x4cffd4
mov eax, dword [ebp - 0x5e8]
call fcn.004c41c0
mov edx, 0x4cff74
mov eax, dword [ebp - 0x420]
call fcn.004c43dc
mov dword [ebp - 0x5ec], eax
mov ecx, 0x4cffe8
mov edx, 0x4cfec0
mov eax, dword [ebp - 0x5ec]
call fcn.004c41c0
mov ecx, 0x4cfff8
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x5ec]
call fcn.004c41c0
mov ecx, 0x4d000c
mov edx, 0x4cffd4
mov eax, dword [ebp - 0x5ec]
call fcn.004c41c0
cmp dword [ebp - 0x44c], 0
je 0x4cee40
mov eax, dword [ebp - 0x44c]
mov eax, dword [eax + 0x24]
cmp byte [eax + 0x3c], 0
je 0x4cee40
mov edx, 0x4cff74
mov eax, dword [ebp - 0x420]
call fcn.004c43dc
mov dword [ebp - 0x5f0], eax
mov ecx, 0x4d0020
mov edx, 0x4cfec0
mov eax, dword [ebp - 0x5f0]
call fcn.004c41c0
mov ecx, 0x4d0034
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x5f0]
call fcn.004c41c0
mov ecx, 0x4d000c
mov edx, 0x4cffd4
mov eax, dword [ebp - 0x5f0]
call fcn.004c41c0
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
sub eax, 2
test eax, eax
jl 0x4cef12
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
push ebp
mov eax, ebx
call fcn.004c731c
pop ecx
test al, al
jne 0x4cef05
mov edx, 0x4cff74
mov eax, dword [ebp - 0x420]
call fcn.004c43dc
mov dword [ebp - 0x5f4], eax
lea ecx, [ebp - 0x6f0]
mov edx, ebx
mov eax, dword [ebp - 0x430]
mov esi, dword [eax]
call dword [esi + 0x14]
mov eax, dword [ebp - 0x6f0]
lea edx, [ebp - 0x6ec]
call fcn.006587e0
mov ecx, dword [ebp - 0x6ec]
lea eax, [ebp - 0x6c4]
mov edx, 0x4d0044
call fcn.00403b24
mov ecx, dword [ebp - 0x6c4]
mov edx, 0x4cfec0
mov eax, dword [ebp - 0x5f4]
call fcn.004c41f0
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + ebx*4]
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x5f4]
call fcn.004c41c0
mov ecx, 0x4d0054
mov edx, 0x4cffd4
mov eax, dword [ebp - 0x5f4]
call fcn.004c41c0
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cee5d
mov eax, dword [ebp - 0x57c]
mov eax, dword [eax + 0x24]
dec eax
test eax, eax
jl 0x4cefd6
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
mov edx, 0x4cff74
mov eax, dword [ebp - 0x420]
call fcn.004c43dc
mov esi, eax
lea ecx, [ebp - 0x6e8]
lea edx, [ebx + 1]
mov eax, 0x4d006c
call fcn.006592b4
mov ecx, dword [ebp - 0x6e8]
mov edx, 0x4cfec0
mov eax, esi
call fcn.004c41c0
lea edx, [ebp - 0x6f0]
mov eax, dword [ebp - 0x57c]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + ebx*4]
call fcn.00658904
mov eax, dword [ebp - 0x6f0]
lea ecx, [ebp - 0x6ec]
mov dx, 0x20
call fcn.0065718c
mov ecx, dword [ebp - 0x6ec]
lea eax, [ebp - 0x6c4]
mov edx, 0x4d007c
call fcn.00403b24
mov ecx, dword [ebp - 0x6c4]
mov edx, 0x4cffa0
mov eax, esi
call fcn.004c41f0
mov ecx, 0x4d0094
mov edx, 0x4cffd4
mov eax, esi
call fcn.004c41c0
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cef2d
xor eax, eax
mov dword [ebp - 0x424], eax
mov eax, dword [ebp - 0x524]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
sub eax, 2
test eax, eax
jl 0x4cf03d
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
push ebp
mov eax, ebx
call fcn.004c731c
pop ecx
test al, al
jne 0x4cf034
push ebp
mov eax, ebx
call fcn.004cb980
pop ecx
mov esi, eax
mov eax, dword [ebp + 8]
cmp esi, dword [eax]
jle 0x4cf02c
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov eax, dword [ebp - 0x524]
add dword [eax], esi
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cf008
mov eax, dword [ebp - 0x448]
mov eax, dword [eax + 0x24]
dec eax
test eax, eax
jl 0x4cf0b0
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
lea eax, [ebp - 0x6e8]
push eax
mov dword [ebp - 0x748], ebx
mov byte [ebp - 0x744], 0
mov eax, dword [ebp - 0x448]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x740], eax
mov byte [ebp - 0x73c], 0xb
lea edx, [ebp - 0x748]
mov eax, 0x4d00b0
mov ecx, 1
call fcn.00659050
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cf054
mov eax, dword [ebp - 0x488]
mov eax, dword [eax + 0x24]
dec eax
test eax, eax
jl 0x4cf123
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
lea eax, [ebp - 0x6e8]
push eax
mov dword [ebp - 0x748], ebx
mov byte [ebp - 0x744], 0
mov eax, dword [ebp - 0x488]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x740], eax
mov byte [ebp - 0x73c], 0xb
lea edx, [ebp - 0x748]
mov eax, 0x4d00bc
mov ecx, 1
call fcn.00659050
mov edx, dword [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cf0c7
lea edx, [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
call fcn.00652630
mov eax, dword [ebp - 0x6e8]
push eax
lea eax, [ebp - 0x6c4]
mov ecx, 0x4d00cc
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
pop edx
call fcn.0061fe88
cmp dword [ebp - 0x44c], 0
je 0x4cf1d4
mov eax, dword [ebp - 0x44c]
mov eax, dword [eax + 0x24]
cmp byte [eax + 0x3c], 0
je 0x4cf1d4
mov eax, dword [ebp - 0x53c]
mov edx, dword [eax]
call dword [edx + 0x34]
mov edx, 0x4cfb54
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edx, 0x4d00f0
mov eax, dword [ebp - 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea edx, [ebp - 0x6e8]
mov eax, dword [ebp - 0x53c]
call fcn.00652630
mov eax, dword [ebp - 0x6e8]
push eax
lea eax, [ebp - 0x6c4]
mov ecx, 0x4d0124
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
pop edx
call fcn.0061fe88
mov eax, dword [ebp - 0x53c]
call fcn.004028c0
mov eax, dword [ebp - 0x488]
call fcn.004028c0
mov eax, dword [ebp - 0x448]
call fcn.004028c0
cmp dword [ebp - 0x44c], 0
je 0x4cf248
mov edx, 0x4cfd78
mov eax, dword [ebp - 0x52c]
call fcn.004c4098
mov edx, 0x4cff18
call fcn.004c43dc
mov dword [ebp - 0x5f8], eax
mov ecx, 0x4d0148
mov edx, 0x4cff38
mov eax, dword [ebp - 0x5f8]
call fcn.004c41c0
mov ecx, 0x4d0148
mov edx, 0x4cff48
mov eax, dword [ebp - 0x5f8]
call fcn.004c41c0
mov edx, 0x4d0158
mov eax, dword [ebp - 0x52c]
call fcn.004c43dc
mov dword [ebp - 0x5fc], eax
mov ecx, 0x4cff84
mov edx, 0x4d0168
mov eax, dword [ebp - 0x5fc]
call fcn.004c41c0
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
sub eax, 2
test eax, eax
jl 0x4cf342
inc eax
mov dword [ebp - 0x5a8], eax
xor ebx, ebx
push ebp
mov eax, ebx
call fcn.004c731c
pop ecx
test al, al
jne 0x4cf335
mov edx, 0x4d0174
mov eax, dword [ebp - 0x5fc]
call fcn.004c43dc
mov dword [ebp - 0x600], eax
lea ecx, [ebp - 0x6f0]
mov edx, ebx
mov eax, dword [ebp - 0x430]
mov esi, dword [eax]
call dword [esi + 0x14]
mov eax, dword [ebp - 0x6f0]
lea edx, [ebp - 0x6ec]
call fcn.006587e0
mov ecx, dword [ebp - 0x6ec]
lea eax, [ebp - 0x6c4]
mov edx, 0x4d0044
call fcn.00403b24
mov ecx, dword [ebp - 0x6c4]
mov edx, 0x4d0184
mov eax, dword [ebp - 0x600]
call fcn.004c41f0
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ebx*4]
mov edx, dword [ebp - 0x450]
call fcn.0040362c
jne 0x4cf335
mov ecx, 0x4d0194
mov edx, 0x4d01a0
mov eax, dword [ebp - 0x600]
call fcn.004c41c0
inc ebx
dec dword [ebp - 0x5a8]
jne 0x4cf290
cmp dword [ebp - 0x450], 0
jne 0x4cf358
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0x10], 0
je 0x4cf4b7
mov edx, 0x4d01b0
mov eax, dword [ebp - 0x52c]
call fcn.004c43dc
mov dword [ebp - 0x604], eax
cmp dword [ebp - 0x450], 0
je 0x4cf3cd
mov edx, 0x4d01c0
mov eax, dword [ebp - 0x604]
call fcn.004c43dc
mov dword [ebp - 0x608], eax
mov ecx, 0x4d0148
mov edx, 0x4d01d4
mov eax, dword [ebp - 0x608]
call fcn.004c41c0
mov ecx, 0x4d01e4
mov edx, 0x4d01f4
mov eax, dword [ebp - 0x608]
call fcn.004c41c0
mov ecx, dword [ebp - 0x450]
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x608]
call fcn.004c41c0
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0x10], 0
je 0x4cf442
mov edx, 0x4d01c0
mov eax, dword [ebp - 0x604]
call fcn.004c43dc
mov dword [ebp - 0x60c], eax
mov ecx, 0x4d0168
mov edx, 0x4d01d4
mov eax, dword [ebp - 0x60c]
call fcn.004c41c0
mov ecx, 0x4d0204
mov edx, 0x4d01f4
mov eax, dword [ebp - 0x60c]
call fcn.004c41c0
push ebp
lea ecx, [ebp - 0x6e8]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0x10]
or edx, 0xffffffff
call fcn.004c73c8
pop ecx
mov ecx, dword [ebp - 0x6e8]
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x60c]
call fcn.004c41c0
mov eax, dword [ebp + 0xc]
cmp dword [eax - 0x14], 0
je 0x4cf4b7
mov edx, 0x4d01c0
mov eax, dword [ebp - 0x604]
call fcn.004c43dc
mov dword [ebp - 0x610], eax
mov ecx, 0x4d0220
mov edx, 0x4d01d4
mov eax, dword [ebp - 0x610]
call fcn.004c41c0
mov ecx, 0x4d0230
mov edx, 0x4d01f4
mov eax, dword [ebp - 0x610]
call fcn.004c41c0
push ebp
lea ecx, [ebp - 0x6e8]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 0x14]
or edx, 0xffffffff
call fcn.004c73c8
pop ecx
mov ecx, dword [ebp - 0x6e8]
mov edx, 0x4cffa0
mov eax, dword [ebp - 0x610]
call fcn.004c41c0
lea eax, [ebp - 0x6c4]
mov ecx, 0x4d0240
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
call fcn.00624f1c
lea eax, [ebp - 0x6c4]
mov ecx, 0x4d0258
mov edx, dword [ebp - 4]
call fcn.00403b24
mov eax, dword [ebp - 0x6c4]
mov edx, 0x4d0290
call fcn.0061fe88
mov eax, dword [0x671aa8]
mov byte [eax], 1
mov edx, 0x4cff84
mov eax, dword [ebp - 0x528]
call fcn.004c43dc
mov dword [ebp - 0x614], eax
mov ecx, 0x4d0374
mov edx, 0x4cfd20
mov eax, dword [ebp - 0x614]
call fcn.004c41c0
mov ecx, dword [ebp - 0x4a0]
mov edx, 0x4d03a4
mov eax, dword [ebp - 0x614]
call fcn.004c41c0
mov ecx, 0x4d03b8
mov edx, 0x4cfd3c
mov eax, dword [ebp - 0x614]
call fcn.004c41c0
mov edx, 0x4d03c8
mov eax, dword [ebp - 0x614]
call fcn.004c43dc
mov dword [ebp - 0x618], eax
mov edx, 0x4cff18
mov eax, dword [ebp - 0x618]
call fcn.004c43dc
mov dword [ebp - 0x61c], eax
mov ecx, 0x4d03d8
mov edx, 0x4cff38
mov eax, dword [ebp - 0x61c]
call fcn.004c41c0
mov ecx, dword [ebp - 0x540]
mov edx, 0x4cff48
mov eax, dword [ebp - 0x61c]
call fcn.004c41c0
mov edx, 0x4cff18
mov eax, dword [ebp - 0x618]
call fcn.004c43dc
mov dword [ebp - 0x560], eax
mov edx, 0x4cff18
mov eax, dword [ebp - 0x618]
call fcn.004c43dc
mov dword [ebp - 0x620], eax
mov ecx, 0x4d03e8
mov edx, 0x4cff38
mov eax, dword [ebp - 0x620]
call fcn.004c41c0
xor ecx, ecx
mov edx, 0x4cff48
mov eax, dword [ebp - 0x620]
call fcn.004c4220
mov edx, 0x4cff18
mov eax, dword [ebp - 0x618]
call fcn.004c43dc
mov dword [ebp - 0x624], eax
mov ecx, 0x4d0404
mov edx, 0x4cff38
mov eax, dword [ebp - 0x624]
call fcn.004c41c0
xor ecx, ecx
mov edx, 0x4cff48
mov eax, dword [ebp - 0x624]
call fcn.004c4220
mov edx, 0x4d0420
mov eax, dword [ebp - 0x614]
call fcn.004c43dc
mov edx, 0x4d0220
call fcn.004c43dc
add eax, 0x24
mov edx, dword [ebp + 0xc]
mov edx, dword [edx - 0xc]
mov edx, dword [edx]
call fcn.004038bc
xor eax, eax
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x510], 1
mov dword [ebp - 0x50c], 1
mov edx, 0x4d0434
mov eax, dword [ebp - 0x614]
call fcn.004c43dc
mov dword [ebp - 0x55c], eax
jmp 0x4cf6ad
push ebp
mov edx, 1
mov eax, dword [ebp - 0x55c]
call fcn.004cc080
pop ecx
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 0x24]
dec eax
cmp eax, dword [ebp - 0x508]
jg 0x4cf69b
mov ecx, 0x4d0444
mov edx, 0x4cff38
mov eax, dword [ebp - 0x560]
call fcn.004c41c0
mov ecx, dword [ebp - 0x50c]
mov edx, 0x4cff48
mov eax, dword [ebp - 0x560]
call fcn.004c4220
mov eax, dword [ebp - 0x614]
add eax, 0x34
mov ecx, 0x4d0454
mov edx, dword [ebp - 4]
call fcn.00403b24
push 0
xor ecx, ecx
mov edx, 0x4d0474
mov eax, dword [ebp - 0x614]
call fcn.004c49a0
mov eax, dword [ebp - 0x52c]
add eax, 0x34
mov ecx, 0x4d0508
mov edx, dword [ebp - 4]
call fcn.00403b24
push 0
xor ecx, ecx
mov edx, 0x4d0530
mov eax, dword [ebp - 0x52c]
call fcn.004c49a0
mov eax, dword [0x671aa8]
mov byte [eax], 0
mov eax, dword [ebp - 0x42c]
call fcn.00652408
mov eax, dword [ebp - 0x484]
call fcn.004028c0
mov byte [ebp - 0x415], 9
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x62c]
mov ebx, eax
mov eax, dword [ebx]
call fcn.004028c0
mov eax, dword [ebx + 4]
call fcn.004028c0
mov eax, dword [ebx + 0x64]
call fcn.00652408
dec byte [ebp - 0x415]
sub dword [ebp - 0x62c], 0x68
cmp byte [ebp - 0x415], 0xff
jne 0x4cf76c
mov eax, dword [ebp - 0x480]
call fcn.00652408
mov eax, dword [ebp - 0x434]
call fcn.00652408
mov eax, dword [ebp - 0x514]
call fcn.00652408
mov eax, dword [ebp - 0x4a4]
call fcn.004028c0
mov eax, dword [ebp - 0x430]
call fcn.004028c0
mov eax, dword [ebp - 0x564]
call fcn.00652408
mov eax, dword [0x67320c]
mov dl, byte [ebp - 0x555]
mov byte [eax], dl
mov eax, dword [ebp - 0x454]
call fcn.004028c0
mov eax, dword [0x6728a0]
mov eax, dword [eax]
call fcn.004028c0
mov eax, dword [0x673354]
mov eax, dword [eax]
call fcn.004028c0
mov eax, dword [ebp - 0x528]
call fcn.004c4a98
mov eax, dword [ebp - 0x530]
call fcn.00652408
mov eax, dword [ebp - 0x57c]
call fcn.004028c0
mov eax, dword [ebp - 0x578]
call fcn.004028c0
mov eax, dword [ebp - 0x570]
call fcn.004028c0
mov eax, dword [ebp - 0x41c]
call fcn.00652324
mov eax, dword [ebp - 0x41c]
call fcn.00652408
mov eax, dword [0x671994]
mov edx, 0x4d0560
call fcn.004032c8
mov eax, dword [ebp + 0xc]
mov edx, dword [eax - 0x18]
mov eax, dword [ebp - 4]
call fcn.004386d4
mov eax, dword [0x671994]
call fcn.00403274
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00625670
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cf92e
lea eax, [ebp - 0x720]
call fcn.00403274
lea eax, [ebp - 0x6f4]
call fcn.00403274
lea eax, [ebp - 0x6f0]
mov edx, 2
call fcn.00403898
lea eax, [ebp - 0x6e8]
call fcn.00403274
lea eax, [ebp - 0x6c4]
call fcn.00403880
lea eax, [ebp - 0x588]
mov edx, 2
call fcn.00403298
lea eax, [ebp - 0x580]
call fcn.00403880
lea eax, [ebp - 0x544]
mov edx, 2
call fcn.00403298
lea eax, [ebp - 0x4a0]
call fcn.00403274
lea eax, [ebp - 0x450]
call fcn.00403274
lea eax, [ebp - 4]
call fcn.00403880
ret