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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x592398
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x114]
mov edx, dword [0x616bac]
call fcn.00403e38
lea eax, [ebp - 0x128]
mov edx, dword [0x58eff8]
call fcn.00403e38
lea eax, [ebp - 0x13c]
mov edx, dword [0x58eff8]
call fcn.00403e38
lea eax, [ebp - 0x150]
mov edx, dword [0x58eff8]
call fcn.00403e38
lea eax, [ebp - 0x164]
mov edx, dword [0x58eff8]
call fcn.00403e38
xor eax, eax
push ebp
push 0x594910
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x5e
je 0x59487b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3c], 0
jge 0x59242b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x24], 0
je 0x59487b
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov al, byte [0x594924]
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 0x592927
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
cmp al, 0x7f
ja 0x592488
and eax, 0xff
bt dword [0x66b5a4], eax
jae 0x592927
or byte [ebp - 0x61], 1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x44
jne 0x5924c0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x5925d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov al, byte [eax + 0x3c]
sub al, 0x4f
je 0x5924c0
sub al, 0x2a
jne 0x5925d0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x4f
je 0x5924ce
sub al, 0x2a
jne 0x5924e9
mov edx, 0x44
mov eax, dword [ebp - 4]
call fcn.004c2018
mov edx, dword [0x66f0d0]
cmp eax, dword [edx]
je 0x5925d0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
jne 0x592515
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x5925d0
mov eax, dword [ebp + 8]
cmp dword [eax - 0x30], 0
jne 0x5925d0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x6d
je 0x592523
sub al, 4
jne 0x59256e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x5925d0
mov eax, dword [ebp + 8]
cmp dword [eax - 0x30], 0
je 0x5925d0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x5925d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x3c], 0x75
jne 0x5925d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dl, 0x6b
call fcn.0058fe44
dec eax
jne 0x5925d0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x75
jne 0x5925d9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x5925d0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x5925d0
mov edx, 0x6d
mov eax, dword [ebp - 4]
call fcn.004c2018
mov edx, dword [0x66f0d0]
cmp eax, dword [edx]
jne 0x5925c3
mov edx, 0x71
mov eax, dword [ebp - 4]
call fcn.004c2018
mov edx, dword [0x66f0d0]
cmp eax, dword [edx]
je 0x5925d0
mov dl, 0x6b
mov eax, dword [ebp - 4]
call fcn.0058fe44
dec eax
je 0x5925d9
or byte [ebp - 0x61], 2
jmp 0x592927
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x6d
jg 0x5925fe
je 0x59285f
sub eax, 0x4f
je 0x592610
sub eax, 0x1c
je 0x5927ff
jmp 0x592927
sub eax, 0x71
je 0x59285f
sub eax, 8
jne 0x592927
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x592655
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00653538
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 0x592707
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
jne 0x59266e
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0xcc], edx
jmp 0x592677
mov eax, dword [ebp + 8]
inc dword [eax - 0xcc]
call fcn.005477bc
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 0x59268f
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.0064e9dc
jmp 0x592710
mov eax, dword [ebp + 8]
inc dword [eax - 0xcc]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00653538
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 0x592789
mov eax, dword [ebp - 0xcc]
xor edx, edx
mov dword [eax + 4], edx
lea eax, [ebp - 0x168]
mov dx, word [ebp - 0xbc]
call fcn.00403980
mov edx, dword [ebp - 0x168]
mov eax, dword [ebp - 0xcc]
add eax, 0x94
mov ecx, 0x59492c
call fcn.00403b14
jmp 0x592927
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 + 0x66b620]
mov word [ebp - 0xbe], ax
mov eax, dword [ebp - 0xcc]
add eax, 0x94
mov dx, word [ebp - 0xbe]
call fcn.00403980
cmp word [ebp - 0xbe], 0xa7
jne 0x5927ea
mov eax, dword [0x66f938]
mov eax, dword [eax]
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0xc], eax
jmp 0x592927
mov eax, dword [0x66f920]
mov eax, dword [eax]
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0xc], eax
jmp 0x592927
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 0x59284c
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 0x59284c
mov eax, dword [ebp + 8]
push eax
call fcn.0058fdac
pop ecx
call fcn.0064e78c
mov edx, dword [ebp + 8]
mov dword [edx - 0xd0], eax
jmp 0x592927
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
cmp dword [eax + 0xdc], 0x3f
jl 0x59289b
push ebp
call fcn.00592304
pop ecx
mov dl, 1
mov eax, dword [0x542380]
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.0064e9dc
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.00592190
pop ecx
test byte [ebp - 0x61], 1
jne 0x59293d
mov eax, dword [ebp + 8]
cmp byte [eax - 0xd1], 0
je 0x5929cf
test byte [ebp - 0x61], 2
jne 0x592972
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x75
jne 0x592972
mov dl, 1
mov eax, dword [0x542380]
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.0064e9dc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp dword [eax + 8], 0
jle 0x5929cf
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc8], 0
je 0x5929c5
mov dl, 0x44
mov eax, dword [ebp - 4]
call fcn.0058fe44
test eax, eax
jle 0x5929c5
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x44
je 0x5929c5
sub al, 0xb
je 0x5929c5
sub al, 0x2a
je 0x5929c5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov al, 7
call fcn.00567970
pop ecx
or byte [ebp - 0x61], 4
jmp 0x5929cf
mov eax, dword [ebp + 8]
push eax
call fcn.0058fdac
pop ecx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x3e
jg 0x592a2f
je 0x592c2f
cmp eax, 0x17
jg 0x592a0c
je 0x592b3c
sub eax, 1
jb 0x592a7a
sub eax, 8
je 0x592b16
sub eax, 5
je 0x592b29
jmp 0x592cd0
sub eax, 0x25
je 0x592c1c
add eax, 0xfffffff6
sub eax, 9
jb 0x592b4f
sub eax, 4
je 0x592c1c
jmp 0x592cd0
cmp eax, 0x65
jg 0x592a5a
je 0x592b16
sub eax, 0x53
je 0x592c42
sub eax, 3
je 0x592c42
sub eax, 0xb
je 0x592c6f
jmp 0x592cd0
sub eax, 0x6d
je 0x592c7f
sub eax, 4
je 0x592c7f
sub eax, 7
je 0x592cc2
jmp 0x592cd0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0058fe44
test eax, eax
jne 0x592cd0
mov ecx, 0x673530
mov edx, 0x594938
mov eax, dword [ebp - 4]
call fcn.004c1dfc
test al, al
je 0x592cd0
cmp dword [0x673530], 0
je 0x592cd0
mov eax, dword [0x66ebb0]
cmp dword [eax + 0x20], 1
jne 0x592acc
push ebp
mov edx, 0x594944
mov al, 0x2e
call fcn.0058ff64
pop ecx
mov eax, dword [0x66ebb0]
cmp dword [eax + 0x44], 0xff000000
je 0x592cd0
push ebp
lea edx, [ebp - 0x16c]
mov eax, dword [0x66ebb0]
mov eax, dword [eax + 0x44]
call fcn.004c0870
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a24
mov edx, dword [ebp - 0x168]
mov al, 0x16
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x59495c
mov al, 0x1d
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x59496c
mov al, 0x1a
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x594980
mov al, 0x19
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x59495c
mov al, 0x1d
call fcn.0058ff64
pop ecx
push ebp
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
fild dword [eax*4 + 0x66b51c]
fld xword [0x594994]
fmulp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x16c]
call fcn.00655d3c
lea eax, [ebp - 0x16c]
mov edx, 0x5949a8
call fcn.00403524
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a24
mov edx, dword [ebp - 0x168]
mov al, 0x1a
call fcn.0058ff64
pop ecx
test byte [ebp - 0x61], 2
jne 0x592cd0
push ebp
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
fild dword [eax*4 + 0x66b540]
fld xword [0x594994]
fmulp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x16c]
call fcn.00655d3c
lea eax, [ebp - 0x16c]
mov edx, 0x5949b4
call fcn.00403524
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
call fcn.00403a24
mov edx, dword [ebp - 0x168]
mov al, 0x22
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x5949c0
mov al, 0x1b
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x5949d4
mov al, 0x2e
call fcn.0058ff64
pop ecx
jmp 0x592cd0
test byte [ebp - 0x61], 2
jne 0x592c56
push ebp
mov edx, 0x5949e4
mov al, 0x22
call fcn.0058ff64
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x56
jne 0x592cd0
push ebp
mov edx, 0x594980
mov al, 0x19
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x5949f4
mov al, 0x1a
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x594a08
mov al, 0x34
call fcn.0058ff64
pop ecx
push ebp
mov edx, 0x594a1c
mov al, 0x15
call fcn.0058ff64
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x71
jne 0x592cd0
push ebp
mov edx, 0x59495c
mov al, 0x1d
call fcn.0058ff64
pop ecx
push ebp
mov edx, 0x594a24
mov al, 0x2d
call fcn.0058ff64
pop ecx
jmp 0x592cd0
push ebp
mov edx, 0x594944
mov al, 0x2e
call fcn.0058ff64
pop ecx
push ebp
call fcn.00590184
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
test eax, eax
jl 0x592f73
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
sub edx, eax
jl 0x592f73
inc edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xbc], eax
mov eax, dword [0x6702f4]
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.0x592d4f.0
mov eax, dword [0x66f840]
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.0x592d4f.0
mov al, byte [eax + 0x592d56]
jmp dword [eax*4 + 0x592d6b]
push ebp
mov edx, dword [ebx]
mov al, 0x2d
call fcn.0058ff64
pop ecx
jmp case.0x592d4f.0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x2a
jne case.0x592d4f.0
push ebp
mov edx, dword [ebx]
mov al, 0x16
call fcn.0058ff64
pop ecx
jmp case.0x592d4f.0
push ebp
mov edx, dword [ebx]
mov al, 1
call fcn.0058ff64
pop ecx
jmp case.0x592d4f.0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x6d
je 0x592de2
sub al, 4
jne case.0x592d4f.0
test byte [ebp - 0x61], 2
jne case.0x592d4f.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.00655d24
call fcn.00653548
mov ebx, eax
mov eax, edi
cmp al, 5
jne 0x592e45
mov eax, dword [ebp - 0xd8]
mov word [eax + 0x94], bx
jmp case.0x592d4f.0
mov eax, dword [ebp - 0xd8]
mov word [eax + 0x96], bx
dec ebx
jle case.0x592d4f.0
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x17], 1
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x16], 1
jmp case.0x592d4f.0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x2a
jne case.0x592d4f.0
push ebp
mov edx, dword [ebx]
mov al, 0x19
call fcn.0058ff64
pop ecx
jmp case.0x592d4f.0
cmp dword [ebx], 0
je case.0x592d4f.0
mov edx, dword [ebx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
call fcn.005e5150
test al, al
jne case.0x592d4f.0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x42d], 0
jne case.0x592d4f.0
mov eax, dword [ebx]
call fcn.00547794
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.0064e9dc
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.0055161c
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.0055161c
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.0x592d4f.0
push ebp
mov edx, dword [ebx]
mov al, 0x1e
call fcn.0058ff64
pop ecx
jmp case.0x592d4f.0
push ebp
mov eax, dword [ebx]
call fcn.00590010
pop ecx
jmp case.0x592d4f.0
push ebp
mov edx, dword [ebx]
mov al, 0x35
call fcn.0058ff64
pop ecx
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x592d00
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.00590a50
pop ecx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
sub al, 0x44
je 0x592f9d
sub al, 0xb
je 0x592f9d
sub al, 0x2a
jne 0x5931f6
test byte [ebp - 0x61], 2
jne 0x5931f6
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 0x5931f6
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 0x5931e4
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00653538
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.0058fe68
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x24]
dec eax
test eax, eax
jl 0x5931d9
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.00654158
mov ebx, 0xb
mov eax, dword [ebp - 0xc4]
xor edx, edx
mov dl, bl
mov edx, dword [edx*4 + 0x66b6f0]
call fcn.0040362c
jne 0x5931c2
xor eax, eax
mov al, bl
cmp eax, 0xb
ja case.default.0x59308f
jmp dword [eax*4 + 0x593096]
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x594a38
call fcn.004038bc
mov eax, dword [0x66f920]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x59308f
xor eax, eax
mov dword [esi + 4], eax
jmp case.default.0x59308f
mov dword [esi + 4], 0x16
jmp case.default.0x59308f
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x594a40
call fcn.004038bc
mov eax, dword [0x66f920]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x59308f
mov dword [esi + 4], 4
jmp case.default.0x59308f
mov dword [esi + 4], 0xff
lea eax, [esi + 0x94]
call fcn.00403880
jmp case.default.0x59308f
mov dword [esi + 4], 2
jmp case.default.0x59308f
mov dword [esi + 4], 0x17
lea eax, [esi + 0x94]
mov edx, 0x594a48
call fcn.004038bc
mov eax, dword [0x66f938]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
jmp case.default.0x59308f
mov dword [esi + 4], 3
jmp case.default.0x59308f
mov dword [esi + 4], 1
mov eax, dword [esi + 4]
cmp eax, 0x17
je 0x5931cc
cmp eax, 0xff
je 0x5931cc
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00653538
mov edx, eax
lea eax, [ebp - 0x168]
call fcn.00403980
mov edx, dword [ebp - 0x168]
lea eax, [esi + 0x94]
mov ecx, 0x59492c
call fcn.00403b14
jmp 0x5931cc
dec ebx
cmp ebx, 0xffffffff
jne 0x593066
inc edi
dec dword [ebp - 0xe0]
jne 0x59304a
mov eax, dword [ebp - 0xdc]
call fcn.004028c0
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x592fc9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x58
jne 0x593251
mov dl, 0x58
mov eax, dword [ebp - 4]
call fcn.0058fe44
inc eax
mov edi, eax
add edi, edi
cmp dword [ebp - 0x68], 0
jne 0x59322b
call fcn.0064d630
mov dword [ebp - 0x68], eax
jmp 0x59322b
mov edx, 0x594a50
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x68]
cmp edi, dword [eax + 0x24]
jg 0x59321e
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.00592100
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00592100
pop ecx
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x3e
jg 0x593294
je 0x59372f
sub eax, 1
jb 0x5932b4
sub eax, 0x10
je 0x593404
sub eax, 0x29
je 0x59341f
jmp 0x594112
sub eax, 0x6b
je 0x593fd5
sub eax, 2
je 0x593fd5
sub eax, 4
je 0x593fd5
jmp 0x594112
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0058fe44
test eax, eax
jne 0x594112
mov ecx, 0x673530
mov edx, 0x594938
mov eax, dword [ebp - 4]
call fcn.004c1dfc
test al, al
je 0x594112
cmp dword [0x673530], 0
je 0x594112
mov dx, 0x23
mov eax, dword [0x673530]
call fcn.00653960
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x59331a
lea eax, [ebp - 0x7c]
mov edx, dword [0x673530]
call fcn.004038bc
jmp 0x593342
lea ecx, [ebp - 0x7c]
mov edx, dword [ebp - 0xbc]
dec edx
mov eax, dword [0x673530]
call fcn.00654774
lea ecx, [ebp - 0x80]
mov edx, dword [ebp - 0xbc]
inc edx
mov eax, dword [0x673530]
call fcn.006547d0
cmp dword [ebp - 0x7c], 0
jne 0x593352
cmp dword [ebp - 0x80], 0
je 0x594112
mov al, 0x58
call fcn.00547780
mov dword [ebp - 0x88], eax
lea ecx, [ebp - 0x74]
mov edx, 0x594a5c
mov eax, dword [ebp - 4]
call fcn.004c1dfc
lea eax, [ebp - 0x168]
push eax
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
call fcn.005459f8
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.0064e9dc
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.0055161c
jmp 0x594112
push ebp
call fcn.00592078
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov al, 7
call fcn.00567970
pop ecx
jmp 0x594112
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x10]
mov dl, 1
mov eax, dword [0x54268c]
call fcn.0055fd9c
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov edx, esi
call fcn.005f7e30
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xe4], eax
mov ecx, 0x3e8
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
mov ecx, 0x808080
mov edx, 0x181
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
mov ecx, 1
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
mov ecx, 0x673530
mov edx, 0x594a6c
mov eax, dword [ebp - 4]
call fcn.004c1dfc
test al, al
je 0x593517
lea eax, [ebp - 0x16c]
mov edx, dword [0x673530]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x594a7c
call fcn.0065408c
test eax, eax
jne 0x5934dd
xor ecx, ecx
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
jmp 0x593517
lea eax, [ebp - 0x16c]
mov edx, dword [0x673530]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x594a8c
call fcn.0065408c
test eax, eax
jne 0x593517
mov ecx, 2
mov edx, 0x394
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
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 0x593706
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.00654158
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 0x593587
sub al, 8
je 0x59359f
sub al, 0x17
je 0x593620
jmp 0x5936f4
mov ecx, dword [ebp - 0x24]
mov edx, 0x181
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
jmp 0x5936f4
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.005904ec
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x128]
mov ecx, dword [0x58eff8]
call fcn.004040dc
cmp byte [ebp - 0x128], 0
je 0x5936f4
cmp dword [ebp - 0x118], 0
jle 0x5936f4
cmp dword [ebp - 0x118], 2
jl 0x5936f4
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x30]
cmp eax, dword [ebp - 0x118]
jg 0x5936f4
mov ecx, dword [ebp - 0x118]
mov edx, 0x395
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
jmp 0x5936f4
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.005904ec
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x13c]
mov ecx, dword [0x58eff8]
call fcn.004040dc
cmp byte [ebp - 0x13c], 0
je 0x5936f4
fld xword [ebp - 0x13a]
fcomp dword [0x594924]
fnstsw ax
sahf
jbe 0x5936f4
cmp byte [ebp - 0x13b], 0
jne 0x5936a9
fld xword [ebp - 0x13a]
fmul dword [0x594a94]
call fcn.00402588
mov ebx, eax
cmp ebx, 0xa
jl 0x5936f4
cmp ebx, 0x3e8
jg 0x5936f4
mov ecx, ebx
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
jmp 0x5936f4
cmp dword [ebp - 0x12c], 0
jle 0x5936f4
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xc4]
mov eax, dword [ebp - 0x12c]
call fcn.00653538
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov edx, 0x396
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
xor ecx, ecx
mov edx, 0x393
mov eax, dword [ebp - 0xe4]
call fcn.0055f7a8
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x593539
mov eax, dword [esi + 0x24]
call fcn.004bf904
mov eax, esi
call fcn.00561278
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
mov ecx, esi
mov dl, 0x1b
call fcn.0055161c
jmp 0x594112
lea eax, [ebp - 0x7c]
call fcn.00403880
mov ecx, 0x67352c
mov edx, 0x594aa0
mov eax, dword [ebp - 4]
call fcn.004c1dac
test al, al
je 0x5938a5
lea eax, [ebp - 0x16c]
push eax
mov ecx, 0x594ab0
mov edx, 0x594abc
mov eax, dword [0x67352c]
call fcn.00654804
mov eax, dword [ebp - 0x16c]
call fcn.0064d5e8
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
call dword [edx + 0xc]
dec eax
jg 0x5937b1
lea eax, [ebp - 0x16c]
push eax
mov cl, 0xd
mov dl, 0x2c
mov eax, dword [0x67352c]
call fcn.00653c98
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0xe8]
call fcn.0064f34c
mov edi, 0x80000000
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x24]
dec eax
cmp eax, 0
jl 0x59389a
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.00653c0c
cmp dword [esi], 0
je 0x593887
lea eax, [ebp - 0x84]
call fcn.00403274
jmp 0x593830
mov eax, dword [esi]
call fcn.00653ba4
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.00653bdc
cmp dword [esi], 0
je 0x593840
mov eax, dword [esi]
call fcn.00653ba4
cmp al, 0x20
jne 0x5937fe
cmp dword [esi], 0
je 0x59384c
mov eax, esi
call fcn.00653bdc
mov eax, dword [ebp - 0x84]
call fcn.0040351c
dec eax
jle 0x593887
lea eax, [ebp - 0x84]
call fcn.00653bdc
mov edx, 0x80000000
mov eax, dword [ebp - 0x84]
call fcn.00655d24
mov ebx, eax
cmp edi, ebx
jge 0x593887
lea eax, [ebp - 0x7c]
mov edx, dword [esi]
call fcn.00403a24
mov edi, ebx
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x5937cf
mov eax, dword [ebp - 0xe8]
call fcn.004028c0
cmp dword [ebp - 0x7c], 0
jne 0x5938c5
mov ecx, 0x673530
mov edx, 0x594ac8
mov eax, dword [ebp - 4]
call fcn.004c1dfc
test al, al
je 0x594112
xor esi, esi
cmp dword [ebp - 0x7c], 0
jne 0x5938db
lea eax, [ebp - 0x7c]
mov edx, dword [0x673530]
call fcn.004038bc
mov edx, dword [ebp - 0x7c]
mov eax, 0x594ad0
call fcn.00654a6c
dec eax
jne 0x59398c
mov edx, dword [ebp - 0x7c]
mov eax, 0x594ae0
call fcn.00654a6c
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jle 0x593bbd
mov ecx, dword [ebp - 0xbc]
add ecx, 7
lea eax, [ebp - 0x7c]
mov edx, 1
call fcn.00403ca8
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x7c]
call fcn.004034e4
lea eax, [ebp - 0xc4]
call fcn.0061bb2c
cmp dword [ebp - 0xc4], 0
je 0x593bbd
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.0061cd68
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x78]
call fcn.0061c950
mov al, byte [0x594af4]
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.005d3a24
mov esi, eax
mov eax, dword [ebp - 0x78]
push eax
call sub.kernel32.dll_DeleteFileW
jmp 0x593bbd
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0x7c]
call fcn.00620530
cmp dword [ebp - 0x110], 0
je 0x593bbd
cmp dword [ebp - 0x10c], 0
je 0x593bbd
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00536b48
mov edx, dword [eax + 0x2c]
lea eax, [ebp - 0x184]
call fcn.00403a24
mov eax, dword [ebp - 0x184]
lea ecx, [ebp - 0x114]
mov edx, dword [ebp - 0x7c]
call fcn.00620848
mov eax, dword [ebp - 0x168]
mov ecx, 0x594afc
mov edx, 0x594b04
call fcn.00654908
lea eax, [ebp - 0x16c]
mov edx, dword [ebp - 0x114]
call fcn.004034e4
mov eax, dword [ebp - 0x16c]
mov edx, 0x594b14
call fcn.0040362c
je 0x593a63
cmp dword [ebp - 0x114], 0
je 0x593a63
mov eax, dword [ebp - 0x114]
call fcn.00403aa8
dec eax
jne 0x593b00
lea eax, [ebp - 0x168]
push eax
mov cx, 0x5c
mov dx, 0x2f
mov eax, dword [ebp - 0x78]
call fcn.00653ce4
mov eax, dword [ebp - 0x168]
call fcn.00654ea8
test al, al
je 0x593b00
mov eax, dword [ebp - 0x114]
call fcn.00403aa8
dec eax
jle 0x593a8f
push dword [ebp - 0x110]
push 0x594b20
push dword [ebp - 0x10c]
lea eax, [ebp - 0x78]
mov edx, 3
call fcn.00403b78
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.00653ce4
mov eax, dword [ebp - 0x184]
mov ecx, 0x594afc
mov edx, 0x594b04
call fcn.00654908
mov edx, dword [ebp - 0x168]
lea eax, [ebp - 0x78]
call fcn.004038bc
mov eax, dword [ebp - 0x78]
call fcn.00654ea8
test al, al
je 0x593bbd
mov al, byte [0x594af4]
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.005d3a24
mov esi, eax
jmp 0x593bbd
mov eax, dword [0x66ebf8]
test byte [eax + 1], 2
je 0x593bbd
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 0x10c]
call fcn.0065530c
mov eax, dword [ebp - 0x168]
lea edx, [ebp - 0x78]
call fcn.0061cd24
mov eax, dword [ebp - 0x78]
call fcn.0061c524
test al, al
jne 0x593b44
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.0061cd68
cmp dword [ebp - 0x104], 0
je 0x593b6e
push dword [ebp - 0x10c]
push 0x594b28
push dword [ebp - 0x104]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.00403b78
mov eax, dword [ebp - 0x78]
push eax
push 0
mov al, byte [0x594af4]
push eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x114]
call fcn.00437f04
test al, al
je 0x593bbd
mov al, byte [0x594b2c]
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.005d3a24
mov esi, eax
test esi, esi
jne 0x593bbd
mov eax, dword [ebp - 0x78]
push eax
call sub.kernel32.dll_DeleteFileW
test esi, esi
je 0x594112
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 0x593d84
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.00654158
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 0x593c51
sub al, 7
je 0x593cd1
sub al, 0x17
je 0x593cd1
jmp 0x593d72
mov eax, dword [ebp - 0xc4]
mov edx, 0x594a7c
call fcn.0040362c
jne 0x593c84
mov eax, dword [esi + 0x24]
mov dword [eax + 0x44], 2
mov eax, dword [esi + 0x24]
mov ecx, 1
mov edx, 0x38f
call fcn.0055f7a8
jmp 0x593d72
mov eax, dword [ebp - 0xc4]
mov edx, 0x594a8c
call fcn.0040362c
jne 0x593cb7
mov eax, dword [esi + 0x24]
mov dword [eax + 0x44], 2
mov eax, dword [esi + 0x24]
mov ecx, 3
mov edx, 0x38f
call fcn.0055f7a8
jmp 0x593d72
mov eax, dword [esi + 0x24]
xor edx, edx
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0x24]
mov edx, 0x38f
call fcn.0055f840
jmp 0x593d72
mov eax, dword [ebp - 0xc4]
mov edx, 0x594b38
call fcn.0040362c
jne 0x593d01
mov eax, edi
cmp al, 0x1e
jne 0x593cf5
mov eax, dword [esi + 0x24]
mov dword [eax + 0x38], 0x80000000
jmp 0x593d72
mov eax, dword [esi + 0x24]
mov dword [eax + 0x34], 0x80000000
jmp 0x593d72
push ebp
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0xc4]
call fcn.005904ec
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x150]
mov ecx, dword [0x58eff8]
call fcn.004040dc
cmp dword [ebp - 0x140], 0
jle 0x593d72
mov eax, edi
cmp al, 0x1e
jne 0x593d57
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 0x593d72
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 0x593bfb
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x34], 0x80000000
jne 0x593db2
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x38], 0x80000000
jne 0x593db2
mov eax, dword [esi + 0x24]
mov dword [eax + 0x34], 0x64
mov eax, dword [esi + 0x24]
mov dword [eax + 0x38], 0x64
jmp 0x593de4
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x34], 0x80000000
jne 0x593dcc
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x38]
mov edx, dword [esi + 0x24]
mov dword [edx + 0x34], eax
jmp 0x593de4
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x38], 0x80000000
jne 0x593de4
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 0x593e40
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp - 0xa4]
jle 0x593ed9
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 0x593e93
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.00653540
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.00653540
mov edx, dword [esi + 0x24]
mov dword [edx + 0x38], eax
mov eax, dword [esi + 0x24]
mov ecx, 1
mov edx, 0x78
call fcn.0055f7a8
mov eax, dword [esi + 0x24]
cmp dword [eax + 0x44], 2
jne 0x593fb4
mov eax, dword [esi + 0x24]
xor ecx, ecx
mov edx, 0x390
call fcn.0055f7a8
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.0054776c
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.0064e9dc
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.0055161c
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.0055161c
jmp 0x594112
push ebp
call fcn.00592078
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.0055161c
jmp 0x594112
test byte [ebp - 0x61], 2
jne 0x594112
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
je 0x594006
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 0x594112
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 0x594100
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.00654158
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x180]
call fcn.005904ec
pop ecx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x164]
mov ecx, dword [0x58eff8]
call fcn.004040dc
cmp byte [ebp - 0x164], 0
je 0x594100
fld xword [ebp - 0x162]
fcomp dword [0x594924]
fnstsw ax
sahf
jbe 0x594100
cmp byte [ebp - 0x163], 0
jne 0x5940c7
fld xword [ebp - 0x162]
call fcn.00402588
mov edi, eax
neg edi
jmp 0x5940cd
mov edi, dword [ebp - 0x154]
cmp edi, 0x80000000
je 0x594100
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x6b
jne 0x5940e6
mov dword [ebp - 0xa8], edi
jmp 0x594100
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 0x594028
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 0x594176
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.00592390
pop ecx
inc dword [ebp - 0xbc]
dec dword [ebp - 0xd4]
jne 0x59414f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x58
jne 0x594195
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.00592100
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 0x5941c1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp esi, dword [eax + 8]
jne 0x5941c1
push ebp
call fcn.00592078
pop ecx
test byte [ebp - 0x61], 2
jne 0x594839
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x3c]
cmp eax, 0x6d
jg 0x594202
je 0x5947be
sub eax, 1
jb 0x594222
sub eax, 0x43
je 0x594299
sub eax, 0xb
je 0x5942d5
sub eax, 0x1c
je 0x5943d9
jmp 0x594839
sub eax, 0x71
je 0x5947be
sub eax, 4
je 0x594815
sub eax, 4
je 0x5942d5
jmp 0x594839
cmp dword [ebp - 0x88], 0
je 0x594839
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 0x59427b
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 0x59427b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x20
call fcn.0056794c
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.0055161c
jmp 0x594839
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 0x594839
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x6d0]
cmp esi, dword [eax + 8]
jne 0x594839
mov eax, dword [ebp + 8]
push eax
call fcn.0058fdac
pop ecx
jmp 0x594839
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 0x59439c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3c], 0x4f
jne 0x594338
xor eax, eax
mov dword [ebx + 4], eax
lea eax, [ebp - 0x168]
mov dx, word [ebp - 0xbc]
call fcn.00403980
mov edx, dword [ebp - 0x168]
lea eax, [ebx + 0x94]
mov ecx, 0x59492c
call fcn.00403b14
jmp 0x59439c
mov dword [ebx + 4], 0x17
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xcc]
mov eax, 8
call fcn.00653538
mov ecx, 3
cdq
idiv ecx
xor eax, eax
mov al, byte [edx + 0x66b620]
mov word [ebp - 0xbe], ax
lea eax, [ebx + 0x94]
mov dx, word [ebp - 0xbe]
call fcn.00403980
cmp word [ebp - 0xbe], 0xa7
jne 0x594392
mov eax, dword [0x66f938]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
jmp 0x59439c
mov eax, dword [0x66f920]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x5942df
mov eax, dword [ebp + 8]
cmp dword [eax - 0xcc], 0
jne 0x5943cb
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0xc8], edx
jmp 0x594839
mov eax, dword [ebp + 8]
dec dword [eax - 0xcc]
jmp 0x594839
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
cmp dword [eax + 0x18], 0
jle 0x5947ae
cmp dword [ebp - 0xa8], 0
jle 0x594411
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0xc4]
mov eax, dword [ebp - 0xa8]
call fcn.00653538
mov dword [ebp - 0xa8], eax
jmp 0x594439
mov edx, dword [ebp - 0xa8]
neg edx
mov eax, 0x64
call fcn.00653538
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc4]
call fcn.0061f000
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 0x5944b9
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 0x594497
imul eax, edi, 0x27
movsx eax, word [esi + eax*4 + 0x170]
call fcn.00653554
add ebx, eax
dec edi
cmp edi, 0xffffffff
jne 0x59447f
mov edx, ebx
mov eax, dword [ebp - 0xac]
call fcn.00653540
mov dword [ebp - 0xac], eax
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x594459
call fcn.0064e78c
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.0064e7dc
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 0x5945d2
mov eax, dword [ebp - 0xec]
cmp edi, dword [eax + 0xd8]
jge 0x5945a1
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 0x594563
mov eax, dword [ebp - 0xf0]
movsx eax, word [eax + 0x94]
call fcn.00653554
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.00653554
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x59459e
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 0x59457d
inc edi
jmp 0x5945c0
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 0x59450e
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 0x59466a
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 0x594645
cmp edi, 0x80000000
je 0x594645
mov edx, edi
neg edx
mov eax, dword [ebp - 0xa8]
call fcn.0061f000
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 0x594655
inc dword [ebp - 0xb0]
jmp 0x59465b
sub dword [ebp - 0xb4], edi
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x5945fe
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5946da
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 0x5946cb
mov eax, dword [ebp - 0xb4]
cdq
idiv dword [ebp - 0xb0]
mov edx, eax
mov eax, 0xb4
call fcn.00653540
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 0x594682
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, 0
jl 0x5947a0
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 0x59478d
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.00653554
test eax, eax
jle 0x59477c
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 0x594764
mov eax, dword [ebp - 0xf8]
mov dword [eax], esi
inc edi
dec dword [ebp - 0xd4]
jne 0x594732
dec dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 0xffffffff
jne 0x5946f6
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd8]
call fcn.0064edac
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xd0]
call fcn.0064edac
jmp 0x594839
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.0055161c
mov eax, dword [ebp + 8]
push eax
call fcn.0058fdac
pop ecx
jmp 0x594839
push ebp
call fcn.00592190
pop ecx
test al, al
jne 0x594815
push ebp
call fcn.00592304
pop ecx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x30], edx
mov eax, dword [ebp + 8]
push eax
call fcn.0058fdac
pop ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x8c]
mov dword [eax - 0xc8], edx
cmp dword [ebp - 0x68], 0
je 0x594856
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 0x59487b
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 0x59491a
lea eax, [ebp - 0x188]
call fcn.00403274
lea eax, [ebp - 0x184]
call fcn.00403880
lea eax, [ebp - 0x180]
mov edx, dword [0x58eff8]
call fcn.00403f00
lea eax, [ebp - 0x16c]
call fcn.00403274
lea eax, [ebp - 0x168]
call fcn.00403880
lea eax, [ebp - 0x164]
mov edx, dword [0x58eff8]
mov ecx, 4
call fcn.00403f2c
lea eax, [ebp - 0x114]
mov edx, dword [0x616bac]
call fcn.00403f00
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