Function at 0x54131c
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x5b
push 0
push 0
dec ecx
jne 0x541324
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004071cc
lea eax, [ebp - 0x288]
mov edx, dword [0x40eff4]
call fcn.00407ed8
xor eax, eax
push ebp
push 0x542167
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x289], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x6a8], 0
mov dword [eax + 0x6ac], 0
mov eax, dword [ebp - 4]
add eax, 0x680
mov edx, dword [ebp - 8]
call fcn.004071e4
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x104]
call fcn.00407238
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x5413b9
mov eax, ebx
sub eax, 0xa
cmp word [eax], 2
je 0x5413b9
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.00406898
mov ebx, eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x5413d6
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x5413d6
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.00406898
test eax, eax
je 0x5413df
sub eax, 4
mov eax, dword [eax]
cmp word [ebx + eax*2 - 2], 0x5c
jne 0x5413f0
mov byte [ebp - 0x29e], 1
jmp 0x5413f7
mov byte [ebp - 0x29e], 0
cmp byte [ebp - 0x29e], 0
je 0x541544
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x541428
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x541428
mov eax, dword [ebp - 8]
call fcn.00512668
test al, al
jne 0x54144a
call fcn.00417a5c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041604c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
jmp 0x5414dd
mov eax, dword [ebp - 8]
test eax, eax
je 0x541467
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x541467
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.00406898
mov ebx, eax
test ebx, ebx
je 0x541472
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040790c
lea ecx, [ebp - 0x288]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x66c]
mov eax, dword [ebp - 0x14]
call fcn.00415724
test eax, eax
jne 0x5414c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [ebp - 0x288]
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x288]
call fcn.00415798
jmp 0x5414dd
call fcn.00417a5c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041604c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a70c
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a694
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x64], 0
mov word [eax + 0x26], 0
xor edx, edx
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 8]
call fcn.00512668
test al, al
je 0x5416ca
mov eax, dword [ebp - 8]
call fcn.00512894
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x28], eax
jmp 0x5416ca
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x18c]
test al, al
jne 0x541697
mov edx, dword [ebp - 4]
cmp byte [edx + 0x18d], 0
jne 0x541697
cmp byte [ebp - 0x29e], 0
jne 0x541697
mov eax, dword [ebp - 8]
call fcn.00512850
test al, al
jne 0x5415aa
mov eax, dword [ebp - 4]
cmp word [eax + 0x612], 0
je 0x54211b
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x614]
call dword [ebx + 0x610]
jmp 0x54211b
mov eax, dword [ebp - 8]
call fcn.00512894
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x28], eax
mov byte [ebp - 0x29f], 0
xor eax, eax
push ebp
push 0x541617
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x66a]
or ax, 0
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
push eax
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x515da8]
call fcn.0051643c
mov edx, dword [ebp - 4]
mov dword [edx + 0x678], eax
mov byte [ebp - 0x29f], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x541669
cmp byte [ebp - 0x29f], 0
jne 0x5415c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.00516524
call fcn.004155bc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
jmp 0x5416ca
test al, al
je 0x5416ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x188]
mov edx, dword [ebp - 4]
mov dword [edx + 0x678], eax
call fcn.00417a5c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0041604c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x67c], edx
xor ecx, ecx
push ebp
push 0x542094
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
je 0x541717
cmp byte [ebp - 0x29e], 0
jne 0x541717
mov eax, dword [ebp - 4]
push dword [eax + 0x19c]
push dword [eax + 0x198]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a70c
jmp 0x54173d
cmp byte [ebp - 0x29e], 0
jne 0x54173d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a70c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5cc], 0
je 0x541780
lea ecx, [ebp - 0x2ac]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00517828
mov edx, dword [ebp - 0x2ac]
lea eax, [ebp - 8]
call fcn.00407238
cmp dword [ebp - 0x10], 0
je 0x541780
lea ecx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x104]
xor edx, edx
call fcn.00517828
cmp byte [ebp - 0x29e], 0
jne 0x5417ad
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 8]
call fcn.0051298c
mov edx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051bbfc
jmp 0x5417bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
xor edx, edx
call fcn.0051bbfc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.0043bc4c
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a61c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x26], 0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x134]
call fcn.0051a764
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b6], 0
je 0x541953
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 8]
call fcn.00512908
mov edx, dword [ebp - 0x2b4]
lea eax, [ebp - 0xc]
mov ecx, 0x542188
call fcn.004076a0
lea ecx, [ebp - 0x2b8]
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.00516fe0
mov eax, dword [ebp - 0x2b8]
mov edx, 0x542198
call fcn.004078a4
jne 0x54187f
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x54186b
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x54186b
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0xc]
call fcn.00406898
test eax, eax
je 0x541874
sub eax, 4
mov eax, dword [eax]
mov edx, eax
dec edx
lea eax, [ebp - 0xc]
call fcn.00407548
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x5418ae
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b7], 0
je 0x5418ae
lea ecx, [ebp - 0x2bc]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00530f0c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5b8], 0
jne 0x541942
cmp dword [ebp - 0xc], 0
je 0x541942
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.00415b9c
cmp dword [ebp - 0x18], 0
je 0x54190b
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x5418f2
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x5418f2
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x18]
call fcn.00406898
test eax, eax
je 0x5418fb
sub eax, 4
mov eax, dword [eax]
lea edx, [ebp - 0xc]
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.004079dc
lea ecx, [ebp - 0x2c0]
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00517078
mov eax, dword [ebp - 0x2c0]
mov edx, 0x542188
call fcn.004078a4
jne 0x541942
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, 1
call fcn.004079dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [ebp - 0xc]
call fcn.0051bc78
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x694]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x688]
mov ebx, dword [eax]
call dword [ebx + 0x48]
test al, al
je 0x541a25
mov byte [ebp - 0x289], 0
mov eax, dword [ebp - 4]
cmp word [eax + 0xda], 0
je 0x5419ad
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x29f]
push eax
mov ebx, dword [ebp - 4]
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xdc]
call dword [ebx + 0xd8]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x541a1b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x541a1b
cmp byte [ebp - 0x29e], 0
jne 0x541a1b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], edx
fild qword [ebp - 0x2c8]
mov eax, dword [ebp - 4]
fild qword [eax + 0x5a0]
fsubrp st(1)
mov eax, dword [ebp - 4]
fistp qword [eax + 0x5a0]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.0040540c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
call fcn.00405fd8
jmp 0x54211b
mov byte [ebp - 0x29d], 0
mov eax, dword [ebp - 4]
cmp word [eax + 0x5f2], 0
je 0x541a5e
mov eax, dword [ebp - 4]
add eax, 0x694
push eax
lea eax, [ebp - 0x29d]
push eax
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x5f4]
call dword [ebx + 0x5f0]
cmp byte [ebp - 0x29d], 0
je 0x541b18
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x541ad9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x541ad9
cmp byte [ebp - 0x29e], 0
jne 0x541ad9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], edx
fild qword [ebp - 0x2c8]
mov eax, dword [ebp - 4]
fild qword [eax + 0x5a0]
fsubrp st(1)
mov eax, dword [ebp - 4]
fistp qword [eax + 0x5a0]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.0040540c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
mov eax, dword [ebp - 4]
cmp word [eax + 0xda], 0
je 0x541b07
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x29f]
push eax
mov ebx, dword [ebp - 4]
mov cl, 7
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xdc]
call dword [ebx + 0xd8]
mov byte [ebp - 0x289], 0
call fcn.00405fd8
jmp 0x54211b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x541b4e
cmp byte [ebp - 0x29e], 0
jne 0x541b4e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 1
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x671]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov byte [edx + 0x4c], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x541bba
mov eax, dword [ebp - 4]
call fcn.00540a88
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051bbd4
cdq
cmp edx, dword [esp + 4]
jne 0x541b85
cmp eax, dword [esp]
pop edx
pop eax
jb 0x541bba
jmp 0x541b89
pop edx
pop eax
jl 0x541bba
mov eax, dword [ebp - 4]
call fcn.00540bb0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x134]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a764
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a61c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x541c3e
cmp byte [ebp - 0x29e], 0
jne 0x541c3e
lea edx, [ebp - 0x2d0]
mov eax, dword [ebp - 4]
call fcn.005436bc
mov eax, dword [ebp - 0x2d0]
lea edx, [ebp - 0x2cc]
call fcn.005177a0
mov edx, dword [ebp - 0x2cc]
mov eax, dword [ebp - 4]
add eax, 0x69c
call fcn.004071e4
push 0xff00
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x10d]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x69c]
mov dl, 1
mov eax, dword [0x515da8]
call fcn.0051643c
mov edx, dword [ebp - 4]
mov dword [edx + 0x67c], eax
jmp 0x541c55
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051b41c
cmp byte [ebp - 0x29e], 0
je 0x541c9d
mov eax, dword [ebp - 4]
cmp word [eax + 0x602], 0
je 0x541c8c
push 0
push 0
push 0
push 0
push 0
push 0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x604]
call dword [ebx + 0x600]
mov byte [ebp - 0x289], 1
call fcn.00405fd8
jmp 0x54211b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.0043bc4c
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x541d18
cmp byte [ebp - 0x29e], 0
jne 0x541d18
push ebp
call fcn.00540d74
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
not eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x13c], eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.0043bc4c
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 4]
call fcn.005421a0
mov eax, dword [ebp - 4]
mov dword [eax + 0x13c], 0xffffffff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
je 0x541d4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 4]
call fcn.0053df9c
test al, al
je 0x541dfe
push ebp
lea eax, [ebp - 0x2a8]
call fcn.00541258
pop ecx
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x694]
mov eax, ebx
call fcn.0051a6d4
push edx
push eax
mov eax, ebx
call fcn.0051a694
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x541de4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a6d4
cmp edx, dword [ebp - 0x2a4]
jne 0x541d9f
cmp eax, dword [ebp - 0x2a8]
jbe 0x541dca
jmp 0x541da1
jle 0x541dca
mov eax, dword [ebp - 8]
push eax
push 0
lea edx, [ebp - 0x2d4]
mov eax, 0xd0
call fcn.004151b8
mov ecx, dword [ebp - 0x2d4]
mov edx, 0xd0
mov eax, dword [ebp - 4]
call fcn.00533a94
push dword [ebp - 0x2a4]
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a70c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
mov word [eax + 0x64], 0
mov word [eax + 0x26], 0
jmp 0x541e8d
lea edx, [ebp - 0x2a8]
mov eax, dword [ebp - 4]
call fcn.0053d400
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a694
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x541e8d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a6d4
cmp edx, dword [ebp - 0x2a4]
jne 0x541e48
cmp eax, dword [ebp - 0x2a8]
jbe 0x541e73
jmp 0x541e4a
jle 0x541e73
mov eax, dword [ebp - 8]
push eax
push 0
lea edx, [ebp - 0x2d8]
mov eax, 0xd0
call fcn.004151b8
mov ecx, dword [ebp - 0x2d8]
mov edx, 0xd0
mov eax, dword [ebp - 4]
call fcn.00533a94
push dword [ebp - 0x2a4]
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a70c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x541ed5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x671], 0
je 0x541ed5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
jne 0x541ec4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
call fcn.005424c0
jmp 0x541ed5
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x67c]
mov eax, dword [ebp - 4]
call fcn.005424c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
jne 0x541f10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.0043bc4c
sub eax, dword [ebp - 0x298]
sbb edx, dword [ebp - 0x294]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a694
jmp 0x541f2d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x67c]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a694
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
not eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x13c], eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x694]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5b0]
cmp eax, 2
jg 0x541f62
or word [edx + 8], 4
jmp 0x541f6c
cmp eax, 8
jl 0x541f6c
or word [edx + 8], 2
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x541f9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
or word [eax + 8], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x541f9c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
call fcn.0043bc4c
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051a5e4
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x674]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x694]
call fcn.0051b41c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
cmp byte [eax + 0x21], 0
je 0x542005
push ebp
call fcn.00540f20
pop ecx
jmp 0x542021
push dword [ebp - 0x294]
push dword [ebp - 0x298]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x674]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov byte [ebp - 0x289], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54209b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x67c]
call fcn.0040540c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x67c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x69c]
call fcn.00407270
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18c], 0
jne 0x542093
mov eax, dword [ebp - 4]
cmp byte [eax + 0x18d], 0
jne 0x542093
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x678]
call fcn.0040540c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x678], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54216e
lea eax, [ebp - 0x2d8]
mov edx, 4
call fcn.004071dc
lea eax, [ebp - 0x2c0]
mov edx, 6
call fcn.004071dc
lea eax, [ebp - 0x288]
mov edx, dword [0x40eff4]
call fcn.00407fb0
lea eax, [ebp - 0x18]
mov edx, 5
call fcn.004071dc
ret