Function at 0x1003920f
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1005aff0
push eax
mov dword fs:[0], esp
sub esp, 0xc8
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov ebx, edx
je 0x10039638
push 0x7c
pop eax
push 2
xor ecx, ecx
mov dword [esp + 0x1c], 0x4a02c200
mov byte [esp + 0x20], 0x65
mov word [esp + 0x24], ax
pop esi
mov dword [esp + 0x30], ecx
cmp esi, 2
jne 0x1003926d
push 3
pop ecx
push ecx
mov dword [esp + 0x34], ecx
pop esi
jmp 0x100392a3
movzx edx, byte [esp + esi + 0x19]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x16]
movzx ecx, word [esp + eax*2 + 0x20]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x18]
add ecx, edx
mov word [esp + eax*2 + 0x20], cx
lea eax, [esp + 0x30]
push eax
call fcn.10038492
pop ecx
mov ecx, dword [esp + 0x30]
add esi, 2
cmp esi, 5
jb 0x1003925d
xor eax, eax
xor ecx, ecx
mov word [esp + 0x22], ax
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], ecx
jmp 0x100392de
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x58], 0xb4e1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x100392ce
mov dword [esp + 0xc], ecx
cmp dword [esp + 0xc], 3
jg 0x100393e3
push 2
pop esi
mov dword [esp + 0x10], 0xbcb1a7a8
mov dword [esp + 0x10], 0xe7071658
cmp dword [esp + 0xc], ecx
jne 0x10039327
mov eax, dword [esp + 0x58]
cmp dword [esp + 0xc], 0xffffffff
je 0x10039322
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x58], ecx
je 0x10039327
xor edx, edx
inc edx
jmp 0x10039329
mov edx, ecx
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x58]
cmp edx, eax
mov eax, dword [esp + 0xc]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x58]
cmp eax, edx
setle cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ecx
jl 0x100393d4
push esi
lea ecx, [esp + 0xb0]
call fcn.1000e2bc
lea eax, [esp + 0x6c]
mov dword [esp + 0xdc], esi
push eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x54], 0xfffc
push eax
push 0x1ed1
xor dl, dl
mov ecx, 0x78b5
call fcn.10039a4b
add esp, 0xc
lea edx, [esp + 0x50]
push 0x7af2
push 0x72fd
call fcn.10038457
or dword [esp + 0xe4], 0xffffffff
pop ecx
pop ecx
lea ecx, [esp + 0xac]
call fcn.1000e33f
dec dword [esp + 0x10]
jns 0x10039366
xor ecx, ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jle 0x100392f7
xor eax, eax
mov dword [esp + 0x80], ecx
mov word [esp + 0x70], ax
lea ecx, [esp + 0x70]
lea eax, [esp + 0x20]
mov dword [esp + 0x84], 7
push eax
call fcn.10014e02
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0xe0], 3
call fcn.100377a6
pop ecx
xor esi, esi
mov byte [esp + 0xdc], 5
xor edi, edi
lea ecx, [esp + 0x70]
push esi
inc edi
push edi
call fcn.1000ec4b
mov dword [esp + 0x10], 0xc05baf43
lea ecx, [esp + 0x88]
mov dword [esp + 0x10], esi
push edi
call fcn.1000e2bc
push ecx
lea eax, [esp + 0x8c]
mov byte [esp + 0xe0], 6
push edi
mov dword [esp + 0x5c], esi
lea ecx, [esp + 0x70]
push eax
call fcn.100378d2
add esp, 0xc
lea eax, [esp + 0x54]
xor dl, dl
mov ecx, 0x74ce
push 0x6d07
push eax
call fcn.10037c88
pop ecx
pop ecx
push 0x37f0
push 0x182b
push ecx
push ecx
push 0x172f
push ecx
push 0x57f7
lea eax, [esp + 0x33]
mov byte [esp + 0x33], 0
push eax
push 0x1333
push 0xd42
push 0x469d
push 0x60ab
push 0x427f
push edi
push 0x2445
mov edx, 0x17cb
mov ecx, 0x77df
call fcn.10039894
add esp, 0x3c
mov byte [esp + 0xdc], 5
lea ecx, [esp + 0x88]
call fcn.1000e33f
and dword [esp + 0x20], esi
push 9
pop eax
mov dword [esp + 0x24], 0x9301fc00
mov dword [esp + 0x28], 0x2d012903
mov word [esp + 0x2c], 0x702
mov word [esp + 0x38], ax
push 2
xor ecx, ecx
pop esi
mov dword [esp + 0x34], ecx
cmp esi, 2
jne 0x10039531
push esi
pop ecx
mov dword [esp + 0x34], ecx
jmp 0x1003956c
movzx edx, byte [esp + esi + 0x25]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x22]
movzx eax, word [esp + eax*2 + 0x38]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x2b3
sub ecx, eax
movzx eax, byte [esp + esi + 0x24]
mov word [esp + eax*2 + 0x38], cx
lea eax, [esp + 0x34]
push eax
xor cl, cl
call fcn.10037a1e
pop ecx
mov ecx, dword [esp + 0x34]
add esi, 2
cmp esi, 0xa
jb 0x10039524
xor eax, eax
mov dword [esp + 0xa8], 7
and dword [esp + 0xa4], eax
lea ecx, [esp + 0x94]
mov word [esp + 0x40], ax
mov word [esp + 0x94], ax
lea eax, [esp + 0x38]
push eax
call fcn.10014e02
xor eax, eax
mov byte [esp + 0xdc], 7
mov ecx, dword [esp + 0x44]
lea edi, [esp + 0x38]
stosd dword es:[edi], eax
push 0x18
pop esi
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0x48]
sub eax, ecx
cdq
idiv esi
mov edi, eax
test edi, edi
je 0x10039611
xor esi, esi
lea eax, [esp + 0x94]
lea edx, [esi + ecx]
push eax
lea ecx, [esp + 0xbc]
call fcn.10037699
pop ecx
mov ecx, dword [esp + 0x44]
push eax
lea ecx, [esi + ecx]
call fcn.1000e13b
push 0
push 1
lea ecx, [esp + 0xc0]
call fcn.1000ec4b
lea esi, [esi + 0x18]
dec edi
je 0x10039611
mov ecx, dword [esp + 0x44]
jmp 0x100395d0
lea eax, [esp + 0x44]
mov ecx, ebx
push eax
call fcn.1003ad78
push 0
push 1
lea ecx, [esp + 0x9c]
call fcn.1000ec4b
lea ecx, [esp + 0x44]
call fcn.1003b12f
jmp 0x10039648
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x10039648
push 0
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret