Function at 0x4040e0
Capabilities:
Delete file
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x4b4257
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov eax, dword [0x4bc98c]
mov dl, byte [0x4bc992]
push ebx
mov ebx, dword [esp + 0x28]
push ebp
mov ebp, ecx
mov cx, word [0x4bc990]
push esi
test ebx, ebx
push edi
mov dword [esp + 0x14], eax
mov word [esp + 0x18], cx
mov byte [esp + 0x1a], dl
je 0x40429a
mov ecx, 0x40
xor eax, eax
mov edi, 0x4d0140
push 0x114
rep stosd dword es:[edi], eax
mov ecx, 0x1e
mov edi, 0x52bf5c
rep stosd dword es:[edi], eax
mov ecx, 0x1e
mov edi, 0x52bfd4
rep stosd dword es:[edi], eax
mov ecx, 0x1e
mov edi, 0x52c04c
rep stosd dword es:[edi], eax
mov ecx, 0x1e
mov edi, 0x52c0c4
rep stosd dword es:[edi], eax
mov ecx, 0x1e
mov edi, 0x52bee4
rep stosd dword es:[edi], eax
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x4d0140
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
mov dword [esp + 0x38], esi
call fcn.004a71d4
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x24], esi
je 0x4041c3
lea ecx, [esp + 0x14]
push ecx
push ebx
mov ecx, eax
call fcn.004a60f0
mov ebx, eax
jmp 0x4041c5
xor ebx, ebx
mov ecx, ebx
mov dword [esp + 0x24], 0xffffffff
call fcn.004a6150
mov edi, eax
test edi, edi
je 0x40428e
cmp esi, 4
ja case.default.0x4041e7
jmp dword [esi*4 + 0x404bd4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x52bf5c
jmp 0x404268
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x52bfd4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x40426f
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x52c04c
jmp 0x404268
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x52c0c4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x40426f
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x52bee4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.004a6150
mov esi, dword [esp + 0x34]
mov edi, eax
inc esi
test edi, edi
mov dword [esp + 0x34], esi
jne 0x4041de
test ebx, ebx
je 0x40429a
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, 0x1e
xor eax, eax
mov edi, 0x513e48
push 0x513e48
rep stosd dword es:[edi], eax
mov edi, 0x52bf5c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x513e48
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004a793f
add esp, 4
mov ecx, 2
mov edi, 0x4bc980
mov esi, 0x513e48
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x404311
mov dl, byte [0x4bc97c]
mov ecx, 0x1e
mov edi, 0x52bf5c
rep stosd dword es:[edi], eax
mov ecx, dword [0x4bc978]
mov byte [0x52bf60], dl
mov dword [0x52bf5c], ecx
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebp + 0x725e8]
mov dword [ebp + 0x738bc], eax
mov dword [esp + 0x14], 1
call fcn.004a6fb0
mov eax, dword [ebp + 0x738bc]
mov edx, dword [ebp + 0x72578]
xor esi, esi
push eax
lea ecx, [ebp + 0x7550]
mov dword [ebp + 0x70edc], esi
mov dword [ebp + 0x72584], edx
call fcn.004a6dd0
mov ebx, dword [sym.imp.kernel32.dll_CreateFileA]
push esi
push esi
push 3
push esi
push esi
and eax, 0xff
push closesocket
push 0x4bc960
mov dword [ebp + 0x725f4], eax
mov dword [ebp + 0x725f8], eax
mov dword [ebp + 0x725fc], eax
mov dword [ebp + 0x72e4c], esi
mov byte [ebp + 0x733ef], 0
mov byte [ebp + 0x733ee], 0
mov byte [ebp + 0x733ed], 0
call ebx
cmp eax, 0xffffffff
je 0x4043dd
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
push eax
call edi
push esi
push esi
push 3
push esi
push esi
push closesocket
push 0x4bc950
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x4043dd
push 0
push esi
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, 0x2ba6
push esi
je 0x4043fd
call edi
mov ecx, dword [ebp + 0x738bc]
push 0x30
push 0x4bc948
push 0x4bc918
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
call edi
mov ecx, ebp
call fcn.00449920
test eax, eax
jne 0x40442a
mov edx, dword [ebp + 0x738bc]
push 0x30
push 0x4bc910
push 0x4bc918
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
lea edx, [ebp + 0x733f1]
xor eax, eax
mov ecx, edx
mov edi, 0x4bc900
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
mov dword [ebp + 0x72f70], 0xb20
call fcn.0044aed0
test eax, eax
jne 0x404494
mov ecx, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc8c8
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
mov ecx, ebp
call fcn.00417bb0
test eax, eax
jne 0x4044bf
mov edx, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc898
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
mov ecx, ebp
call fcn.004181a0
test eax, eax
jne 0x4044ea
mov eax, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc868
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
mov edx, dword [ebp + 0x738bc]
lea ecx, [ebp + 0x7f1c]
push edx
call fcn.004016a0
test eax, eax
je 0x404519
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
lea ecx, [ebp + 0x38104]
call fcn.004a49d0
test eax, eax
jne 0x404539
mov eax, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc844
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
push 0
push 0
push 3
push 0
push 0
push closesocket
push 0x4bc82c
call ebx
mov esi, dword [sym.imp.kernel32.dll_GetProcessHeap]
push 0x54
push 8
mov dword [ebp + 0x738c0], eax
call esi
mov edi, dword [sym.imp.kernel32.dll_HeapAlloc]
push eax
call edi
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x24], 1
je 0x40459a
push 0
push 0
lea ecx, [ebp + 0x7f1c]
push 0x4bc820
push ecx
mov ecx, dword [ebp + 0x738c0]
push ecx
mov ecx, eax
call fcn.0049dd60
jmp 0x40459c
xor eax, eax
mov edx, dword [ebp + 0x738c0]
mov dword [ebp + 0x381f8], eax
push edx
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0
push 0
push 3
push 0
push 0
push closesocket
push 0x4bc808
call ebx
push 0x54
push 8
mov dword [ebp + 0x738c0], eax
call esi
push eax
call edi
mov dword [esp + 0x2c], eax
xor ebx, ebx
mov dword [esp + 0x24], 2
cmp eax, ebx
je 0x404604
push ebx
push ebx
lea ecx, [ebp + 0x7f1c]
push 0x4bc7fc
push ecx
mov ecx, dword [ebp + 0x738c0]
push ecx
mov ecx, eax
call fcn.0049dd60
jmp 0x404606
xor eax, eax
mov edx, dword [ebp + 0x738c0]
mov dword [ebp + 0x38198], eax
push edx
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x93ab84
push 8
mov word [ebp + 8], bx
mov word [ebp + 0xa], bx
call esi
push eax
call edi
mov dword [esp + 0x2c], eax
cmp eax, ebx
mov dword [esp + 0x24], 3
je 0x404647
push ebp
mov ecx, eax
call fcn.004932f0
jmp 0x404649
xor eax, eax
mov dword [ebp + 0x6ea9c], eax
lea ecx, [ebp + 0x732ad]
xor eax, eax
xor edx, edx
mov dword [ecx], eax
lea esi, [ebp + 0x38128]
mov dword [esp + 0x24], 0xffffffff
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
lea eax, [ebp + 0x731c7]
xor ecx, ecx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
lea edx, [ebp + 0x731d3]
mov al, 0x64
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov byte [ebp + 0x7359a], al
mov byte [ebp + 0x7359b], al
mov byte [ebp + 0x733e9], cl
mov byte [ebp + 0x73598], cl
mov byte [ebp + 0x73599], cl
lea eax, [ebp + 0x730be]
lea ecx, [ebp + 0x7309e]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x7307e]
push ecx
push edx
push 0x504646
push eax
mov ecx, esi
mov word [ebp + 0x72fdc], 2
mov byte [ebp + 0x734c2], 0x1d
mov byte [ebp + 0x734c1], 0x1e
mov byte [ebp + 0x73597], 4
call fcn.004a5320
lea ecx, [ebp + 0x730c0]
lea edx, [ebp + 0x730a0]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x73080]
push edx
push eax
push 0x504646
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x730c2]
lea eax, [ebp + 0x730a2]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x73082]
push eax
push ecx
push 0x504646
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x730c4]
lea ecx, [ebp + 0x730a4]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x73084]
push ecx
push edx
push 0x466446
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x730c6]
lea edx, [ebp + 0x730a6]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x73086]
push edx
push eax
push 0xa5a82
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x730c8]
lea eax, [ebp + 0x730a8]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x73088]
push eax
push ecx
push 0x6f352a
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x730ca]
lea ecx, [ebp + 0x730aa]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x7308a]
push ecx
push edx
push 0x919191
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x730cc]
lea edx, [ebp + 0x730ac]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x7308c]
push edx
push eax
push 0x786478
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x730ce]
lea eax, [ebp + 0x730ae]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x7308e]
push eax
push ecx
push 0xa0a4b
push edx
mov ecx, esi
call fcn.004a5320
lea edi, [ebp + 0x73070]
lea ebx, [ebp + 0x73050]
lea eax, [ebp + 0x73030]
push edi
push ebx
push eax
mov al, byte [ebp + 0x37f5e]
push 0x1e6887
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x7305c]
lea edx, [ebp + 0x7303c]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x7301c]
push edx
push eax
push 0x646464
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x7305e]
lea eax, [ebp + 0x7303e]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x7301e]
push eax
push ecx
push 0x602828
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x73060]
push eax
mov al, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x73040]
lea edx, [ebp + 0x73020]
push ecx
push edx
push 0x3e4f4f
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x73062]
lea edx, [ebp + 0x73042]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x73022]
push edx
push eax
push 0x1e6887
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x73064]
lea eax, [ebp + 0x73044]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x73024]
push eax
push ecx
push 0x127f
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x73066]
lea ecx, [ebp + 0x73046]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x73026]
push ecx
push edx
push 0xa3c0a
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x73068]
lea edx, [ebp + 0x73048]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x73028]
push edx
push eax
push 0x282828
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x7306a]
lea eax, [ebp + 0x7304a]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x7302a]
push eax
push ecx
push 0x504f2f
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x7306c]
lea ecx, [ebp + 0x7304c]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x7302c]
push ecx
push edx
push 0x5a347f
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x7306e]
lea edx, [ebp + 0x7304e]
push ecx
lea eax, [ebp + 0x7302e]
push edx
push eax
mov cl, byte [ebp + 0x37f5e]
push 0x5a3c5a
push ecx
mov ecx, esi
call fcn.004a5320
mov dl, byte [ebp + 0x37f5e]
push edi
lea eax, [ebp + 0x73030]
push ebx
push eax
push 0x3c2300
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x73072]
lea ecx, [ebp + 0x73052]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x73032]
push ecx
push edx
push 0x465a69
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x73074]
lea edx, [ebp + 0x73054]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x73034]
push edx
push eax
push 0x355b5e
push ecx
mov ecx, esi
call fcn.004a5320
lea edx, [ebp + 0x73076]
lea eax, [ebp + 0x73056]
push edx
mov dl, byte [ebp + 0x37f5e]
lea ecx, [ebp + 0x73036]
push eax
push ecx
push 0x85555
push edx
mov ecx, esi
call fcn.004a5320
lea eax, [ebp + 0x73078]
lea ecx, [ebp + 0x73058]
push eax
mov al, byte [ebp + 0x37f5e]
lea edx, [ebp + 0x73038]
push ecx
push edx
push 0xa0a4b
push eax
mov ecx, esi
call fcn.004a5320
lea ecx, [ebp + 0x7307a]
lea edx, [ebp + 0x7305a]
push ecx
mov cl, byte [ebp + 0x37f5e]
lea eax, [ebp + 0x7303a]
push edx
push eax
push 0x303030
push ecx
mov ecx, esi
call fcn.004a5320
push 0x7d4
call fcn.004a71d4
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x24], 4
je 0x404af5
mov ecx, eax
call fcn.004a4be0
jmp 0x404af7
xor eax, eax
push 0x23
push 0x4bc7e4
push 0x4bc7cc
mov ecx, esi
mov dword [esp + 0x30], 0xffffffff
mov dword [ebp + 0x70edc], eax
call fcn.004a5460
test eax, eax
jne 0x404b3c
mov edx, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc7a0
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
mov ecx, dword [ebp + 0x70edc]
push 0x4bc7e4
call fcn.004a4c40
mov edi, dword [sym.imp.kernel32.dll_DeleteFileA]
push 0x4bc7e4
call edi
push 0x23
push 0x4bc78c
push 0x4bc778
mov ecx, esi
call fcn.004a5460
test eax, eax
jne 0x404b8d
mov eax, dword [ebp + 0x738bc]
push 0x30
push 0x4bc8f8
push 0x4bc74c
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
jmp 0x404bbf
push 0x4bc78c
lea ecx, [ebp + 0x72570]
call fcn.004a4300
push 0x4bc78c
call edi
mov ecx, ebp
call fcn.0043ad80
mov ecx, 8
xor eax, eax
lea edi, [ebp + 0x73576]
rep stosd dword es:[edi], eax
mov eax, 1
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 0xc