Function at 0x58cc48
Capabilities:
Delete file
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x58cc50
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x114]
mov edx, dword [0x613f0c]
call fcn.00403e48
lea eax, [ebp - 0x128]
mov edx, dword [0x5898b0]
call fcn.00403e48
lea eax, [ebp - 0x13c]
mov edx, dword [0x5898b0]
call fcn.00403e48
lea eax, [ebp - 0x150]
mov edx, dword [0x5898b0]
call fcn.00403e48
lea eax, [ebp - 0x164]
mov edx, dword [0x5898b0]
call fcn.00403e48
xor eax, eax
push ebp
push 0x58f1c8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x5e
je 0x58f133
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3c], 0
jge 0x58cce3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x24], 0
je 0x58f133
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov al, byte [0x58f1dc]
mov byte [ebp - 0x61], al
mov dword [ebp - 0xa8], 0xffffff9c
xor eax, eax
mov dword [ebp - 0x68], eax
xor eax, eax
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc8]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x38], 0
je 0x58d1df
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
cmp al, 0x7f
ja 0x58cd40
and eax, 0xff
bt dword [0x665da4], eax
jae 0x58d1df
or byte [ebp - 0x61], 1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x44
jne 0x58cd78
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x58ce88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov al, byte [eax + 0x3c]
sub al, 0x4f
je 0x58cd78
sub al, 0x2a
jne 0x58ce88
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x4f
je 0x58cd86
sub al, 0x2a
jne 0x58cda1
mov edx, 0x44
mov eax, dword [ebp - 4]
call fcn.004b413c
mov edx, dword [0x6693f0]
cmp eax, dword [edx]
je 0x58ce88
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
jne 0x58cdcd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x58ce88
mov eax, dword [ebp + 8]
cmp dword [eax - 0x30], 0
jne 0x58ce88
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x6d
je 0x58cddb
sub al, 4
jne 0x58ce26
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x58ce88
mov eax, dword [ebp + 8]
cmp dword [eax - 0x30], 0
je 0x58ce88
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x58ce88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x3c], 0x75
jne 0x58ce88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dl, 0x6b
call fcn.0058a6fc
dec eax
jne 0x58ce88
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x75
jne 0x58ce91
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x58ce88
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x58ce88
mov edx, 0x6d
mov eax, dword [ebp - 4]
call fcn.004b413c
mov edx, dword [0x6693f0]
cmp eax, dword [edx]
jne 0x58ce7b
mov edx, 0x71
mov eax, dword [ebp - 4]
call fcn.004b413c
mov edx, dword [0x6693f0]
cmp eax, dword [edx]
je 0x58ce88
mov dl, 0x6b
mov eax, dword [ebp - 4]
call fcn.0058a6fc
dec eax
je 0x58ce91
or byte [ebp - 0x61], 2
jmp 0x58d1df
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x6d
jg 0x58ceb6
je 0x58d117
sub eax, 0x4f
je 0x58cec8
sub eax, 0x1c
je 0x58d0b7
jmp 0x58d1df
sub eax, 0x71
je 0x58d117
sub eax, 8
jne 0x58d1df
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x58cf0d
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00652c54
imul eax, eax, 0x2b
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xc8]
cmp dword [edx + eax*4 + 0x18], 0x17
sete al
mov edx, dword [ebp - 4]
cmp byte [edx + 0x3c], 0x79
sete dl
cmp al, dl
je 0x58cfbf
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x58cf26
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0xcc], edx
jmp 0x58cf2f
mov eax, dword [ebp + 8]
inc dword [eax - 0xcc]
call fcn.00541d20
mov edx, dword [ebp + 8]
mov dword [edx - 0xc8], eax
mov dword [ebp - 0xbc], 8
imul eax, dword [ebp - 0xbc], 0x2b
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xc8]
lea eax, [edx + eax*4 + 0x14]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
mov dword [eax + 4], 0x80000000
imul ax, word [ebp - 0xbc], 0x168
add ax, 0x2d0
mov edx, dword [ebp - 0xc8]
mov word [edx + 0x6a], ax
mov eax, dword [ebp - 0xc8]
mov word [eax + 0x68], 0xfe98
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58cf47
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xc8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x604]
call fcn.0064e1f0
jmp 0x58cfc8
mov eax, dword [ebp + 8]
inc dword [eax - 0xcc]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00652c54
mov dword [ebp - 0xbc], eax
imul eax, dword [ebp - 0xbc], 0x2b
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xc8]
lea eax, [edx + eax*4 + 0x14]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x4f
jne 0x58d041
mov eax, dword [ebp - 0xcc]
xor edx, edx
mov dword [eax + 4], edx
lea eax, [ebp - 0x168]
mov dx, word [ebp - 0xbc]
call fcn.00403990
mov edx, dword [ebp - 0x168]
mov eax, dword [ebp - 0xcc]
add eax, 0x94
mov ecx, 0x58f1e4
call fcn.00403b24
jmp 0x58d1df
mov eax, dword [ebp - 0xcc]
mov dword [eax + 4], 0x17
mov eax, dword [ebp - 0xbc]
mov ecx, 3
cdq
idiv ecx
xor eax, eax
mov al, byte [edx + 0x665e20]
mov word [ebp - 0xbe], ax
mov eax, dword [ebp - 0xcc]
add eax, 0x94
mov dx, word [ebp - 0xbe]
call fcn.00403990
cmp word [ebp - 0xbe], 0xa7
jne 0x58d0a2
mov eax, dword [0x66979c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0xc], eax
jmp 0x58d1df
mov eax, dword [0x66978c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0xc], eax
jmp 0x58d1df
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
cmp dword [eax + 0x18], 1
jle 0x58d104
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4 - 8]
cmp byte [eax + 0x3c], 0
je 0x58d104
mov eax, dword [ebp + 8]
push eax
call fcn.0058a664
pop ecx
call fcn.0064dfa0
mov edx, dword [ebp + 8]
mov dword [edx - 0xd0], eax
jmp 0x58d1df
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
cmp dword [eax + 0xdc], 0x3f
jl 0x58d153
push ebp
call fcn.0058cbbc
pop ecx
mov dl, 1
mov eax, dword [0x53c848]
call fcn.00402898
mov edx, dword [ebp + 8]
mov dword [edx - 0x30], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x30]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
call fcn.0064e1f0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
imul eax, dword [eax + 0xdc], 0x27
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
lea eax, [edx + eax*4 + 0xe0]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x1c], 0xff
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x20], 0xff000000
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd0]
lea esi, [eax + 0x18]
lea edi, [edx + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd0]
lea esi, [eax + 0x18]
lea edi, [edx + 0x50]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd0]
lea esi, [eax + 0x18]
lea edi, [edx + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
push ebp
call fcn.0058ca48
pop ecx
test byte [ebp - 0x61], 1
jne 0x58d1f5
mov eax, dword [ebp + 8]
cmp byte [eax - 0xd1], 0
je 0x58d287
test byte [ebp - 0x61], 2
jne 0x58d22a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x75
jne 0x58d22a
mov dl, 1
mov eax, dword [0x53c848]
call fcn.00402898
mov edx, dword [ebp + 8]
mov dword [edx - 0x30], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x30]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
call fcn.0064e1f0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp dword [eax + 8], 0
jle 0x58d287
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x58d27d
mov dl, 0x44
mov eax, dword [ebp - 4]
call fcn.0058a6fc
test eax, eax
jle 0x58d27d
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x44
je 0x58d27d
sub al, 0xb
je 0x58d27d
sub al, 0x2a
je 0x58d27d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov al, 7
call fcn.005621cc
pop ecx
or byte [ebp - 0x61], 4
jmp 0x58d287
mov eax, dword [ebp + 8]
push eax
call fcn.0058a664
pop ecx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x3e
jg 0x58d2e7
je 0x58d4e7
cmp eax, 0x17
jg 0x58d2c4
je 0x58d3f4
sub eax, 1
jb 0x58d332
sub eax, 8
je 0x58d3ce
sub eax, 5
je 0x58d3e1
jmp 0x58d588
sub eax, 0x25
je 0x58d4d4
add eax, 0xfffffff6
sub eax, 9
jb 0x58d407
sub eax, 4
je 0x58d4d4
jmp 0x58d588
cmp eax, 0x65
jg 0x58d312
je 0x58d3ce
sub eax, 0x53
je 0x58d4fa
sub eax, 3
je 0x58d4fa
sub eax, 0xb
je 0x58d527
jmp 0x58d588
sub eax, 0x6d
je 0x58d537
sub eax, 4
je 0x58d537
sub eax, 7
je 0x58d57a
jmp 0x58d588
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0058a6fc
test eax, eax
jne 0x58d588
mov ecx, 0x66c514
mov edx, 0x58f1f0
mov eax, dword [ebp - 4]
call fcn.004b3f20
test al, al
je 0x58d588
cmp dword [0x66c514], 0
je 0x58d588
mov eax, dword [0x6691ec]
cmp dword [eax + 0x20], 1
jne 0x58d384
push ebp
mov edx, 0x58f1fc
mov al, 0x2e
call fcn.0058a81c
pop ecx
mov eax, dword [0x6691ec]
cmp dword [eax + 0x44], 0xff000000
je 0x58d588
push ebp
lea edx, [ebp - 0x16c]
mov eax, dword [0x6691ec]
mov eax, dword [eax + 0x44]
call fcn.004b178c
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a34
mov edx, dword [ebp - 0x168]
mov al, 0x16
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f214
mov al, 0x1d
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f224
mov al, 0x1a
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f238
mov al, 0x19
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f214
mov al, 0x1d
call fcn.0058a81c
pop ecx
push ebp
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
fild dword [eax*4 + 0x665d1c]
fld xword [0x58f24c]
fmulp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x16c]
call fcn.006553f4
lea eax, [ebp - 0x16c]
mov edx, 0x58f260
call fcn.00403524
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a34
mov edx, dword [ebp - 0x168]
mov al, 0x1a
call fcn.0058a81c
pop ecx
test byte [ebp - 0x61], 2
jne 0x58d588
push ebp
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
fild dword [eax*4 + 0x665d40]
fld xword [0x58f24c]
fmulp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x16c]
call fcn.006553f4
lea eax, [ebp - 0x16c]
mov edx, 0x58f26c
call fcn.00403524
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a34
mov edx, dword [ebp - 0x168]
mov al, 0x22
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f278
mov al, 0x1b
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f28c
mov al, 0x2e
call fcn.0058a81c
pop ecx
jmp 0x58d588
test byte [ebp - 0x61], 2
jne 0x58d50e
push ebp
mov edx, 0x58f29c
mov al, 0x22
call fcn.0058a81c
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x56
jne 0x58d588
push ebp
mov edx, 0x58f238
mov al, 0x19
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f2ac
mov al, 0x1a
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f2c0
mov al, 0x34
call fcn.0058a81c
pop ecx
push ebp
mov edx, 0x58f2d4
mov al, 0x15
call fcn.0058a81c
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x71
jne 0x58d588
push ebp
mov edx, 0x58f214
mov al, 0x1d
call fcn.0058a81c
pop ecx
push ebp
mov edx, 0x58f2dc
mov al, 0x2d
call fcn.0058a81c
pop ecx
jmp 0x58d588
push ebp
mov edx, 0x58f1fc
mov al, 0x2e
call fcn.0058a81c
pop ecx
push ebp
call fcn.0058aa3c
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
test eax, eax
jl 0x58d82b
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
sub edx, eax
jl 0x58d82b
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
mov eax, dword [0x669b68]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0xbc]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x40]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov edi, eax
test edi, edi
jl case.0x58d607.0
mov eax, dword [0x669728]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0xbc]
lea ebx, [eax + edx*4]
mov eax, edi
and eax, 0x7f
cmp eax, 0x14
ja case.0x58d607.0
mov al, byte [eax + 0x58d60e]
jmp dword [eax*4 + 0x58d623]
push ebp
mov edx, dword [ebx]
mov al, 0x2d
call fcn.0058a81c
pop ecx
jmp case.0x58d607.0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x2a
jne case.0x58d607.0
push ebp
mov edx, dword [ebx]
mov al, 0x16
call fcn.0058a81c
pop ecx
jmp case.0x58d607.0
push ebp
mov edx, dword [ebx]
mov al, 1
call fcn.0058a81c
pop ecx
jmp case.0x58d607.0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x6d
je 0x58d69a
sub al, 4
jne case.0x58d607.0
test byte [ebp - 0x61], 2
jne case.0x58d607.0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
imul eax, dword [eax + 0xdc], 0x27
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
lea eax, [edx + eax*4 + 0xe0]
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x16c]
mov edx, dword [ebx]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
xor edx, edx
call fcn.006553dc
call fcn.00652c64
mov ebx, eax
mov eax, edi
cmp al, 5
jne 0x58d6fd
mov eax, dword [ebp - 0xd8]
mov word [eax + 0x94], bx
jmp case.0x58d607.0
mov eax, dword [ebp - 0xd8]
mov word [eax + 0x96], bx
dec ebx
jle case.0x58d607.0
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x17], 1
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x16], 1
jmp case.0x58d607.0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x2a
jne case.0x58d607.0
push ebp
mov edx, dword [ebx]
mov al, 0x19
call fcn.0058a81c
pop ecx
jmp case.0x58d607.0
cmp dword [ebx], 0
je case.0x58d607.0
mov edx, dword [ebx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
call fcn.005e0f60
test al, al
jne case.0x58d607.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x42d], 0
jne case.0x58d607.0
mov eax, dword [ebx]
call fcn.00541cf8
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x598]
mov edx, dword [ebp - 0x88]
call fcn.0064e1f0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1c
call fcn.0054bb80
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1d
call fcn.0054bb80
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x5d4]
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp case.0x58d607.0
push ebp
mov edx, dword [ebx]
mov al, 0x1e
call fcn.0058a81c
pop ecx
jmp case.0x58d607.0
push ebp
mov eax, dword [ebx]
call fcn.0058a8c8
pop ecx
jmp case.0x58d607.0
push ebp
mov edx, dword [ebx]
mov al, 0x35
call fcn.0058a81c
pop ecx
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58d5b8
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
dec eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
push ebp
call fcn.0058b308
pop ecx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x44
je 0x58d855
sub al, 0xb
je 0x58d855
sub al, 0x2a
jne 0x58daae
test byte [ebp - 0x61], 2
jne 0x58daae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x34]
dec edx
sub edx, eax
jl 0x58daae
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax]
call dword [ecx + 0x18]
add al, 0xe0
sub al, 2
jae 0x58da9c
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00652c54
imul eax, eax, 0x2b
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xc8]
lea esi, [edx + eax*4 + 0x14]
lea ecx, [ebp - 0x16c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x16c]
call fcn.0058a720
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x24]
dec eax
test eax, eax
jl 0x58da91
inc eax
mov dword [ebp - 0xe0], eax
xor edi, edi
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + edi*4]
lea edx, [ebp - 0xc4]
call fcn.00653810
mov ebx, 0xb
mov eax, dword [ebp - 0xc4]
xor edx, edx
mov dl, bl
mov edx, dword [edx*4 + 0x665ef0]
call fcn.0040362c
jne 0x58da7a
xor eax, eax
mov al, bl
cmp eax, 0xb
ja case.default.0x58d947
jmp dword [eax*4 + 0x58d94e]
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x58f2f0
call fcn.004038bc
mov eax, dword [0x66978c]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x58d947
xor eax, eax
mov dword [esi + 4], eax
jmp case.default.0x58d947
mov dword [esi + 4], 0x16
jmp case.default.0x58d947
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x58f2f8
call fcn.004038bc
mov eax, dword [0x66978c]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x58d947
mov dword [esi + 4], 4
jmp case.default.0x58d947
mov dword [esi + 4], 0xff
lea eax, [esi + 0x94]
call fcn.00403880
jmp case.default.0x58d947
mov dword [esi + 4], 2
jmp case.default.0x58d947
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x58f300
call fcn.004038bc
mov eax, dword [0x66979c]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x58d947
mov dword [esi + 4], 3
jmp case.default.0x58d947
mov dword [esi + 4], 1
mov eax, dword [esi + 4]
cmp eax, 0x17
je 0x58da84
cmp eax, 0xff
je 0x58da84
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00652c54
mov edx, eax
lea eax, [ebp - 0x168]
call fcn.00403990
mov edx, dword [ebp - 0x168]
lea eax, [esi + 0x94]
mov ecx, 0x58f1e4
call fcn.00403b24
jmp 0x58da84
dec ebx
cmp ebx, 0xffffffff
jne 0x58d91e
inc edi
dec dword [ebp - 0xe0]
jne 0x58d902
mov eax, dword [ebp - 0xdc]
call fcn.004028c0
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58d881
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x58
jne 0x58db09
mov dl, 0x58
mov eax, dword [ebp - 4]
call fcn.0058a6fc
inc eax
mov edi, eax
add edi, edi
cmp dword [ebp - 0x68], 0
jne 0x58dae3
call fcn.0064d744
mov dword [ebp - 0x68], eax
jmp 0x58dae3
mov edx, 0x58f308
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x68]
cmp edi, dword [eax + 0x24]
jg 0x58dad6
dec edi
mov dword [ebp - 0xb8], edi
push ebp
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 0xb8]
mov eax, dword [eax + edx*4 - 4]
call fcn.0058c9b8
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0058c9b8
pop ecx
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x3e
jg 0x58db4c
je 0x58dfe7
sub eax, 1
jb 0x58db6c
sub eax, 0x10
je 0x58dcbc
sub eax, 0x29
je 0x58dcd7
jmp 0x58e9ca
sub eax, 0x6b
je 0x58e88d
sub eax, 2
je 0x58e88d
sub eax, 4
je 0x58e88d
jmp 0x58e9ca
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0058a6fc
test eax, eax
jne 0x58e9ca
mov ecx, 0x66c514
mov edx, 0x58f1f0
mov eax, dword [ebp - 4]
call fcn.004b3f20
test al, al
je 0x58e9ca
cmp dword [0x66c514], 0
je 0x58e9ca
mov dx, 0x23
mov eax, dword [0x66c514]
call fcn.0065306c
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x58dbd2
lea eax, [ebp - 0x7c]
mov edx, dword [0x66c514]
call fcn.004038bc
jmp 0x58dbfa
lea ecx, [ebp - 0x7c]
mov edx, dword [ebp - 0xbc]
dec edx
mov eax, dword [0x66c514]
call fcn.00653e2c
lea ecx, [ebp - 0x80]
mov edx, dword [ebp - 0xbc]
inc edx
mov eax, dword [0x66c514]
call fcn.00653e88
cmp dword [ebp - 0x7c], 0
jne 0x58dc0a
cmp dword [ebp - 0x80], 0
je 0x58e9ca
mov al, 0x58
call fcn.00541ce4
mov dword [ebp - 0x88], eax
lea ecx, [ebp - 0x74]
mov edx, 0x58f314
mov eax, dword [ebp - 4]
call fcn.004b3f20
lea eax, [ebp - 0x168]
push eax
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
call fcn.0053ff5c
mov edx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x88]
add eax, 0x3c
call fcn.004038bc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x18]
dec eax
mov edx, dword [ebp - 0x88]
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x598]
mov edx, dword [ebp - 0x88]
call fcn.0064e1f0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1c
call fcn.0054bb80
jmp 0x58e9ca
push ebp
call fcn.0058c930
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov al, 7
call fcn.005621cc
pop ecx
jmp 0x58e9ca
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x10]
mov dl, 1
mov eax, dword [0x53cb54]
call fcn.0055a348
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov edx, esi
call fcn.005f40f4
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xe4], eax
mov ecx, 0x3e8
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
mov ecx, 0x808080
mov edx, 0x181
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
mov ecx, 1
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
mov ecx, 0x66c514
mov edx, 0x58f324
mov eax, dword [ebp - 4]
call fcn.004b3f20
test al, al
je 0x58ddcf
lea eax, [ebp - 0x16c]
mov edx, dword [0x66c514]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x58f334
call fcn.00653744
test eax, eax
jne 0x58dd95
xor ecx, ecx
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
jmp 0x58ddcf
lea eax, [ebp - 0x16c]
mov edx, dword [0x66c514]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x58f344
call fcn.00653744
test eax, eax
jne 0x58ddcf
mov ecx, 2
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x34]
dec edx
sub edx, eax
jl 0x58dfbe
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
lea ecx, [ebp - 0x16c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0xc4]
call fcn.00653810
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax]
call dword [ecx + 0x18]
sub al, 0x16
je 0x58de3f
sub al, 8
je 0x58de57
sub al, 0x17
je 0x58ded8
jmp 0x58dfac
mov ecx, dword [ebp - 0x24]
mov edx, 0x181
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
jmp 0x58dfac
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.0058ada4
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x128]
mov ecx, dword [0x5898b0]
call fcn.004040ec
cmp byte [ebp - 0x128], 0
je 0x58dfac
cmp dword [ebp - 0x118], 0
jle 0x58dfac
cmp dword [ebp - 0x118], 2
jl 0x58dfac
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x30]
cmp eax, dword [ebp - 0x118]
jg 0x58dfac
mov ecx, dword [ebp - 0x118]
mov edx, 0x395
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
jmp 0x58dfac
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.0058ada4
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x13c]
mov ecx, dword [0x5898b0]
call fcn.004040ec
cmp byte [ebp - 0x13c], 0
je 0x58dfac
fld xword [ebp - 0x13a]
fcomp dword [0x58f1dc]
fnstsw ax
sahf
jbe 0x58dfac
cmp byte [ebp - 0x13b], 0
jne 0x58df61
fld xword [ebp - 0x13a]
fmul dword [0x58f34c]
call fcn.00402588
mov ebx, eax
cmp ebx, 0xa
jl 0x58dfac
cmp ebx, 0x3e8
jg 0x58dfac
mov ecx, ebx
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
jmp 0x58dfac
cmp dword [ebp - 0x12c], 0
jle 0x58dfac
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xc4]
mov eax, dword [ebp - 0x12c]
call fcn.00652c54
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov edx, 0x396
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
xor ecx, ecx
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.00559d54
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58ddf1
mov eax, dword [esi + 0x24]
call fcn.004b067c
mov eax, esi
call fcn.0055b824
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, esi
mov dl, 0x1b
call fcn.0054bb80
jmp 0x58e9ca
lea eax, [ebp - 0x7c]
call fcn.00403880
mov ecx, 0x66c510
mov edx, 0x58f358
mov eax, dword [ebp - 4]
call fcn.004b3ed0
test al, al
je 0x58e15d
lea eax, [ebp - 0x16c]
push eax
mov ecx, 0x58f368
mov edx, 0x58f374
mov eax, dword [0x66c510]
call fcn.00653ebc
mov eax, dword [ebp - 0x16c]
call fcn.0064d6fc
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
call dword [edx + 0xc]
dec eax
jg 0x58e069
lea eax, [ebp - 0x16c]
push eax
mov cl, 0xd
mov dl, 0x2c
mov eax, dword [0x66c510]
call fcn.006533a4
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0xe8]
call fcn.0064eb60
mov edi, 0x80000000
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x24]
dec eax
cmp eax, 0
jl 0x58e152
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
lea esi, [eax + edx*4]
mov eax, esi
call fcn.00653318
cmp dword [esi], 0
je 0x58e13f
lea eax, [ebp - 0x84]
call fcn.00403274
jmp 0x58e0e8
mov eax, dword [esi]
call fcn.006532b0
mov edx, eax
lea eax, [ebp - 0x16c]
call fcn.00403418
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x84]
mov ecx, dword [ebp - 0x84]
call fcn.00403568
mov eax, esi
call fcn.006532e8
cmp dword [esi], 0
je 0x58e0f8
mov eax, dword [esi]
call fcn.006532b0
cmp al, 0x20
jne 0x58e0b6
cmp dword [esi], 0
je 0x58e104
mov eax, esi
call fcn.006532e8
mov eax, dword [ebp - 0x84]
call fcn.0040351c
dec eax
jle 0x58e13f
lea eax, [ebp - 0x84]
call fcn.006532e8
mov edx, 0x80000000
mov eax, dword [ebp - 0x84]
call fcn.006553dc
mov ebx, eax
cmp edi, ebx
jge 0x58e13f
lea eax, [ebp - 0x7c]
mov edx, dword [esi]
call fcn.00403a34
mov edi, ebx
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58e087
mov eax, dword [ebp - 0xe8]
call fcn.004028c0
cmp dword [ebp - 0x7c], 0
jne 0x58e17d
mov ecx, 0x66c514
mov edx, 0x58f380
mov eax, dword [ebp - 4]
call fcn.004b3f20
test al, al
je 0x58e9ca
xor esi, esi
cmp dword [ebp - 0x7c], 0
jne 0x58e193
lea eax, [ebp - 0x7c]
mov edx, dword [0x66c514]
call fcn.004038bc
mov edx, dword [ebp - 0x7c]
mov eax, 0x58f388
call fcn.00654124
dec eax
jne 0x58e244
mov edx, dword [ebp - 0x7c]
mov eax, 0x58f398
call fcn.00654124
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jle 0x58e475
mov ecx, dword [ebp - 0xbc]
add ecx, 7
lea eax, [ebp - 0x7c]
mov edx, 1
call fcn.00403cb8
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x7c]
call fcn.004034e4
lea eax, [ebp - 0xc4]
call fcn.0061b698
cmp dword [ebp - 0xc4], 0
je 0x58e475
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.0061c8e8
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x78]
call fcn.0061c4d0
mov al, byte [0x58f3ac]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov cl, 7
mov edx, dword [ebp - 0x78]
call fcn.005cf14c
mov esi, eax
mov eax, dword [ebp - 0x78]
push eax
call sub.kernel32.dll_DeleteFileW
jmp 0x58e475
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0x7c]
call fcn.0062009c
cmp dword [ebp - 0x110], 0
je 0x58e475
cmp dword [ebp - 0x10c], 0
je 0x58e475
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00530afc
mov edx, dword [eax + 0x2c]
lea eax, [ebp - 0x184]
call fcn.00403a34
mov eax, dword [ebp - 0x184]
lea ecx, [ebp - 0x114]
mov edx, dword [ebp - 0x7c]
call fcn.006203b4
mov eax, dword [ebp - 0x168]
mov ecx, 0x58f3b4
mov edx, 0x58f3bc
call fcn.00653fc0
lea eax, [ebp - 0x16c]
mov edx, dword [ebp - 0x114]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x58f3cc
call fcn.0040362c
je 0x58e31b
cmp dword [ebp - 0x114], 0
je 0x58e31b
mov eax, dword [ebp - 0x114]
call fcn.00403ab8
dec eax
jne 0x58e3b8
lea eax, [ebp - 0x168]
push eax
mov cx, 0x5c
mov dx, 0x2f
mov eax, dword [ebp - 0x78]
call fcn.006533f0
mov eax, dword [ebp - 0x168]
call fcn.00654560
test al, al
je 0x58e3b8
mov eax, dword [ebp - 0x114]
call fcn.00403ab8
dec eax
jle 0x58e347
push dword [ebp - 0x110]
push 0x58f3d8
push dword [ebp - 0x10c]
lea eax, [ebp - 0x78]
mov edx, 3
call fcn.00403b88
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x184]
push eax
mov cx, 0x5c
mov dx, 0x2f
mov eax, dword [ebp - 0x78]
call fcn.006533f0
mov eax, dword [ebp - 0x184]
mov ecx, 0x58f3b4
mov edx, 0x58f3bc
call fcn.00653fc0
mov edx, dword [ebp - 0x168]
lea eax, [ebp - 0x78]
call fcn.004038bc
mov eax, dword [ebp - 0x78]
call fcn.00654560
test al, al
je 0x58e475
mov al, byte [0x58f3ac]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov cl, 7
mov edx, dword [ebp - 0x78]
call fcn.005cf14c
mov esi, eax
jmp 0x58e475
mov eax, dword [0x669208]
test byte [eax + 1], 2
je 0x58e475
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 0x10c]
call fcn.006549c4
mov eax, dword [ebp - 0x168]
lea edx, [ebp - 0x78]
call fcn.0061c8a4
mov eax, dword [ebp - 0x78]
call fcn.0061c0a4
test al, al
jne 0x58e3fc
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.0061c8e8
cmp dword [ebp - 0x104], 0
je 0x58e426
push dword [ebp - 0x10c]
push 0x58f3e0
push dword [ebp - 0x104]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.00403b88
mov eax, dword [ebp - 0x78]
push eax
push 0
mov al, byte [0x58f3ac]
push eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x114]
call fcn.004570bc
test al, al
je 0x58e475
mov al, byte [0x58f3e4]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov cl, 7
mov edx, dword [ebp - 0x78]
call fcn.005cf14c
mov esi, eax
test esi, esi
jne 0x58e475
mov eax, dword [ebp - 0x78]
push eax
call sub.kernel32.dll_DeleteFileW
test esi, esi
je 0x58e9ca
mov eax, dword [esi + 0x24]
mov dword [eax + 0x34], 0x80000000
mov eax, dword [esi + 0x24]
mov dword [eax + 0x38], 0x80000000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x34]
dec edx
sub edx, eax
jl 0x58e63c
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
lea ecx, [ebp - 0x16c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0xc4]
call fcn.00653810
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
mov eax, edi
sub al, 0x17
je 0x58e509
sub al, 7
je 0x58e589
sub al, 0x17
je 0x58e589
jmp 0x58e62a
mov eax, dword [ebp - 0xc4]
mov edx, 0x58f334
call fcn.0040362c
jne 0x58e53c
mov eax, dword [esi + 0x24]
mov dword [eax + 0x44], 2
mov eax, dword [esi + 0x24]
mov ecx, 1
mov edx, 0x38f
call fcn.00559d54
jmp 0x58e62a
mov eax, dword [ebp - 0xc4]
mov edx, 0x58f344
call fcn.0040362c
jne 0x58e56f
mov eax, dword [esi + 0x24]
mov dword [eax + 0x44], 2
mov eax, dword [esi + 0x24]
mov ecx, 3
mov edx, 0x38f
call fcn.00559d54
jmp 0x58e62a
mov eax, dword [esi + 0x24]
xor edx, edx
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0x24]
mov edx, 0x38f
call fcn.00559dec
jmp 0x58e62a
mov eax, dword [ebp - 0xc4]
mov edx, 0x58f3f0
call fcn.0040362c
jne 0x58e5b9
mov eax, edi
cmp al, 0x1e
jne 0x58e5ad
mov eax, dword [esi + 0x24]
mov dword [eax + 0x38], 0x80000000
jmp 0x58e62a
mov eax, dword [esi + 0x24]
mov dword [eax + 0x34], 0x80000000
jmp 0x58e62a
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.0058ada4
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x150]
mov ecx, dword [0x5898b0]
call fcn.004040ec
cmp dword [ebp - 0x140], 0
jle 0x58e62a
mov eax, edi
cmp al, 0x1e
jne 0x58e60f
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x30]
push eax
push 0x64
mov eax, dword [ebp - 0x140]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [esi + 0x24]
mov dword [edx + 0x38], eax
jmp 0x58e62a
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x2c]
push eax
push 0x64
mov eax, dword [ebp - 0x140]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [esi + 0x24]
mov dword [edx + 0x34], eax
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58e4b3
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x34], 0x80000000
jne 0x58e66a
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x38], 0x80000000
jne 0x58e66a
mov eax, dword [esi + 0x24]
mov dword [eax + 0x34], 0x64
mov eax, dword [esi + 0x24]
mov dword [eax + 0x38], 0x64
jmp 0x58e69c
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x34], 0x80000000
jne 0x58e684
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x38]
mov edx, dword [esi + 0x24]
mov dword [edx + 0x34], eax
jmp 0x58e69c
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x38], 0x80000000
jne 0x58e69c
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x34]
mov edx, dword [esi + 0x24]
mov dword [edx + 0x38], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x2c]
push eax
push 0x64
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc4]
push eax
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0xa0], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x30]
push eax
push 0x64
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc0]
push eax
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0xa4], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x34]
cmp eax, dword [ebp - 0xa0]
jg 0x58e6f8
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp - 0xa4]
jle 0x58e791
fild dword [ebp - 0xa0]
mov eax, dword [esi + 0x24]
fild dword [eax + 0x34]
fdivp st(1)
fstp qword [ebp - 0x94]
wait
fild dword [ebp - 0xa4]
mov eax, dword [esi + 0x24]
fild dword [eax + 0x38]
fdivp st(1)
fstp qword [ebp - 0x9c]
wait
fld qword [ebp - 0x9c]
fcomp qword [ebp - 0x94]
fnstsw ax
sahf
jae 0x58e74b
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0x24]
fild dword [eax + 0x34]
fmul qword [ebp - 0x94]
call fcn.00402588
mov edx, eax
mov eax, 5
call fcn.00652c5c
mov edx, dword [esi + 0x24]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x24]
fild dword [eax + 0x38]
fmul qword [ebp - 0x94]
call fcn.00402588
mov edx, eax
mov eax, 5
call fcn.00652c5c
mov edx, dword [esi + 0x24]
mov dword [edx + 0x38], eax
mov eax, dword [esi + 0x24]
mov ecx, 1
mov edx, 0x78
call fcn.00559d54
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x44], 2
jne 0x58e86c
mov eax, dword [esi + 0x24]
xor ecx, ecx
mov edx, 0x390
call fcn.00559d54
mov eax, dword [esi + 0x24]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [esi + 0x24]
xor edx, edx
mov dword [eax + 0x58], edx
push 0x64
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x34]
push eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x2c]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [esi + 0x24]
mov dword [edx + 0x5c], eax
push 0x64
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x38]
push eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x30]
push eax
call sub.kernel32.dll_MulDiv
mov edx, dword [esi + 0x24]
mov dword [edx + 0x60], eax
mov al, 7
call fcn.00541cd0
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
mov dword [eax + 0x40], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x598]
mov edx, dword [ebp - 0x88]
call fcn.0064e1f0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1c
call fcn.0054bb80
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1d
call fcn.0054bb80
jmp 0x58e9ca
push ebp
call fcn.0058c930
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, esi
mov dl, 0x1b
call fcn.0054bb80
jmp 0x58e9ca
test byte [ebp - 0x61], 2
jne 0x58e9ca
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
je 0x58e8be
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
imul eax, dword [eax + 0xdc], 0x27
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
mov dword [edx + eax*4 + 0xe0], 0x80000000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x34]
dec edx
sub edx, eax
jl 0x58e9ca
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax]
call dword [ecx + 0x18]
sub al, 0x35
jne 0x58e9b8
push ebp
lea ecx, [ebp - 0x188]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x188]
lea edx, [ebp - 0x16c]
call fcn.00653810
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x180]
call fcn.0058ada4
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x164]
mov ecx, dword [0x5898b0]
call fcn.004040ec
cmp byte [ebp - 0x164], 0
je 0x58e9b8
fld xword [ebp - 0x162]
fcomp dword [0x58f1dc]
fnstsw ax
sahf
jbe 0x58e9b8
cmp byte [ebp - 0x163], 0
jne 0x58e97f
fld xword [ebp - 0x162]
call fcn.00402588
mov edi, eax
neg edi
jmp 0x58e985
mov edi, dword [ebp - 0x154]
cmp edi, 0x80000000
je 0x58e9b8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
jne 0x58e99e
mov dword [ebp - 0xa8], edi
jmp 0x58e9b8
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
imul eax, dword [eax + 0xdc], 0x27
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
mov dword [edx + eax*4 + 0xe0], edi
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58e8e0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
dec eax
test eax, eax
jl 0x58ea2e
inc eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xbc], 0
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov eax, dword [eax + edx*4]
call fcn.0058cc48
pop ecx
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x58ea07
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x58
jne 0x58ea4d
push ebp
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 0xb8]
mov eax, dword [eax + edx*4]
call fcn.0058c9b8
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
cmp ebx, dword [eax + 0x18]
jne 0x58ea79
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp esi, dword [eax + 8]
jne 0x58ea79
push ebp
call fcn.0058c930
pop ecx
test byte [ebp - 0x61], 2
jne 0x58f0f1
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x6d
jg 0x58eaba
je 0x58f076
sub eax, 1
jb 0x58eada
sub eax, 0x43
je 0x58eb51
sub eax, 0xb
je 0x58eb8d
sub eax, 0x1c
je 0x58ec91
jmp 0x58f0f1
sub eax, 0x71
je 0x58f076
sub eax, 4
je 0x58f0cd
sub eax, 4
je 0x58eb8d
jmp 0x58f0f1
cmp dword [ebp - 0x88], 0
je 0x58f0f1
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x18]
dec edx
cmp eax, edx
jne 0x58eb33
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 0x6d0]
cmp eax, dword [edx + 8]
jne 0x58eb33
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x20
call fcn.005621a8
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, dword [ebp - 0x88]
mov dl, 0x1d
call fcn.0054bb80
jmp 0x58f0f1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0xb0]
cmp ebx, dword [eax + 0x18]
jne 0x58f0f1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp esi, dword [eax + 8]
jne 0x58f0f1
mov eax, dword [ebp + 8]
push eax
call fcn.0058a664
pop ecx
jmp 0x58f0f1
mov dword [ebp - 0xbc], 8
imul eax, dword [ebp - 0xbc], 0x2b
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xc8]
lea ebx, [edx + eax*4 + 0x14]
cmp dword [ebx + 4], 0x80000000
jne 0x58ec54
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x4f
jne 0x58ebf0
xor eax, eax
mov dword [ebx + 4], eax
lea eax, [ebp - 0x168]
mov dx, word [ebp - 0xbc]
call fcn.00403990
mov edx, dword [ebp - 0x168]
lea eax, [ebx + 0x94]
mov ecx, 0x58f1e4
call fcn.00403b24
jmp 0x58ec54
mov dword [ebx + 4], 0x17
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00652c54
mov ecx, 3
cdq
idiv ecx
xor eax, eax
mov al, byte [edx + 0x665e20]
mov word [ebp - 0xbe], ax
lea eax, [ebx + 0x94]
mov dx, word [ebp - 0xbe]
call fcn.00403990
cmp word [ebp - 0xbe], 0xa7
jne 0x58ec4a
mov eax, dword [0x66979c]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
jmp 0x58ec54
mov eax, dword [0x66978c]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58eb97
mov eax, dword [ebp + 8]
cmp dword [eax - 0xcc], 0
jne 0x58ec83
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0xc8], edx
jmp 0x58f0f1
mov eax, dword [ebp + 8]
dec dword [eax - 0xcc]
jmp 0x58f0f1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
cmp dword [eax + 0x18], 0
jle 0x58f066
cmp dword [ebp - 0xa8], 0
jle 0x58ecc9
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xc4]
mov eax, dword [ebp - 0xa8]
call fcn.00652c54
mov dword [ebp - 0xa8], eax
jmp 0x58ecf1
mov edx, dword [ebp - 0xa8]
neg edx
mov eax, 0x64
call fcn.00652c54
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc4]
call fcn.0061ec08
mov dword [ebp - 0xa8], eax
xor eax, eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x58ed71
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov eax, dword [eax + edx*4]
lea esi, [eax + 4]
xor ebx, ebx
mov edi, dword [esi + 0xd8]
dec edi
cmp edi, 0
jl 0x58ed4f
imul eax, edi, 0x27
movsx eax, word [esi + eax*4 + 0x170]
call fcn.00652c70
add ebx, eax
dec edi
cmp edi, 0xffffffff
jne 0x58ed37
mov edx, ebx
mov eax, dword [ebp - 0xac]
call fcn.00652c5c
mov dword [ebp - 0xac], eax
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58ed11
call fcn.0064dfa0
mov edx, dword [ebp + 8]
mov dword [edx - 0xd8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov edx, dword [ebp - 0xac]
call fcn.0064dff0
xor eax, eax
mov dword [ebp - 0xbc], eax
xor edi, edi
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
add eax, 4
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xac]
jge 0x58ee8a
mov eax, dword [ebp - 0xec]
cmp edi, dword [eax + 0xd8]
jge 0x58ee59
imul eax, edi, 0x27
mov edx, dword [ebp - 0xec]
lea eax, [edx + eax*4 + 0xdc]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov esi, dword [eax]
cmp esi, 0x80000000
je 0x58ee1b
mov eax, dword [ebp - 0xf0]
movsx eax, word [eax + 0x94]
call fcn.00652c70
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov esi, eax
mov eax, dword [ebp - 0xf0]
movsx eax, word [eax + 0x94]
call fcn.00652c70
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x58ee56
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov dword [eax + edx*4], esi
inc dword [ebp - 0xbc]
dec ebx
cmp ebx, 0xffffffff
jne 0x58ee35
inc edi
jmp 0x58ee78
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov dword [eax + edx*4], 0x80000000
inc dword [ebp - 0xbc]
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xac]
jl 0x58edc6
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xb4], eax
xor eax, eax
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x58ef22
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov edi, dword [eax + edx*4]
test edi, edi
jge 0x58eefd
cmp edi, 0x80000000
je 0x58eefd
mov edx, edi
neg edx
mov eax, dword [ebp - 0xa8]
call fcn.0061ec08
mov edi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov dword [eax + edx*4], edi
cmp edi, 0x80000000
jne 0x58ef0d
inc dword [ebp - 0xb0]
jmp 0x58ef13
sub dword [ebp - 0xb4], edi
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58eeb6
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x58ef92
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
cmp dword [eax + edx*4], 0x80000000
jne 0x58ef83
mov eax, dword [ebp - 0xb4]
cdq
idiv dword [ebp - 0xb0]
mov edx, eax
mov eax, 0xb4
call fcn.00652c5c
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0xd8]
mov edx, dword [edx + 0x1c]
mov ecx, dword [ebp - 0xbc]
mov dword [edx + ecx*4], eax
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58ef3a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x58f058
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xbc]
mov eax, dword [eax + edx*4]
add eax, 4
mov dword [ebp - 0xf4], eax
xor esi, esi
xor ebx, ebx
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xd8]
dec eax
test eax, eax
jl 0x58f045
inc eax
mov dword [ebp - 0xd4], eax
xor edi, edi
imul eax, edi, 0x27
mov edx, dword [ebp - 0xf4]
lea eax, [edx + eax*4 + 0xdc]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
movsx eax, word [eax + 0x94]
call fcn.00652c70
test eax, eax
jle 0x58f034
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x1c]
add esi, dword [eax + ebx*4]
inc ebx
dec dword [ebp - 0xe0]
jne 0x58f01c
mov eax, dword [ebp - 0xf8]
mov dword [eax], esi
inc edi
dec dword [ebp - 0xd4]
jne 0x58efea
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x58efae
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
call fcn.0064e5c0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
call fcn.0064e5c0
jmp 0x58f0f1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
imul eax, dword [eax + 0xdc], 0x27
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
mov ecx, dword [ebp + 8]
lea edi, [edx + eax*4 + 0xe4]
lea esi, [ecx - 0xbc]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
inc dword [eax + 0xdc]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
xor ecx, ecx
mov dl, 0x19
call fcn.0054bb80
mov eax, dword [ebp + 8]
push eax
call fcn.0058a664
pop ecx
jmp 0x58f0f1
push ebp
call fcn.0058ca48
pop ecx
test al, al
jne 0x58f0cd
push ebp
call fcn.0058cbbc
pop ecx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x30], edx
mov eax, dword [ebp + 8]
push eax
call fcn.0058a664
pop ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x8c]
mov dword [eax - 0xc8], edx
cmp dword [ebp - 0x68], 0
je 0x58f10e
mov eax, dword [ebp - 0x68]
call fcn.004028c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp + 8]
mov dword [edx - 0x34], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x10
je 0x58f133
test byte [ebp - 0x61], 1
setne al
mov edx, dword [ebp + 8]
mov byte [edx - 0xd1], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58f1d2
lea eax, [ebp - 0x188]
call fcn.00403274
lea eax, [ebp - 0x184]
call fcn.00403880
lea eax, [ebp - 0x180]
mov edx, dword [0x5898b0]
call fcn.00403f10
lea eax, [ebp - 0x16c]
call fcn.00403274
lea eax, [ebp - 0x168]
call fcn.00403880
lea eax, [ebp - 0x164]
mov edx, dword [0x5898b0]
mov ecx, 4
call fcn.00403f3c
lea eax, [ebp - 0x114]
mov edx, dword [0x613f0c]
call fcn.00403f10
lea eax, [ebp - 0xc4]
call fcn.00403274
lea eax, [ebp - 0x84]
call fcn.00403274
lea eax, [ebp - 0x80]
mov edx, 5
call fcn.00403898
ret