Function at 0x409b40
Capabilities:
Copy file
Create directory
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x413be6
mov eax, dword fs:[0]
push eax
sub esp, 0x84c
mov eax, dword [0x41c404]
xor eax, esp
mov dword [esp + 0x848], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41c404]
xor eax, esp
push eax
lea eax, [esp + 0x860]
mov dword fs:[0], eax
mov edi, ecx
push 1
mov dword [esp + 0x18], edi
call sub.mfc90.dll_Ordinal_6740
mov eax, dword [edi + 0x1e4]
mov eax, dword [eax - 0xc]
lea ebp, [edi + 0x1e4]
xor ebx, ebx
cmp eax, ebx
jne 0x409bda
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov dword [esp + 0x868], ebx
push 0x42a
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_4431]
mov ecx, dword [esp + 0x14]
push ebx
push ebx
push ecx
mov ecx, edi
call sub.mfc90.dll_Ordinal_4502
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x40a261
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ebp
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov ecx, edi
call fcn.00409740
cmp eax, ebx
je 0x40a261
mov ecx, ebp
call dword [sym.imp.mfc90.dll_Ordinal_6676]
mov edx, dword [edi + 0x1e8]
mov eax, dword [edx - 0xc]
cmp eax, ebx
jne 0x409c43
mov eax, dword [edi + 0x148]
push ebx
push ebx
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x409c43
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov dword [esp + 0x868], 1
push 0x42b
jmp 0x409bb3
lea esi, [edi + 0x210]
push str.BugReport_
mov ecx, esi
call dword [sym.imp.mfc90.dll_Ordinal_945]
mov eax, dword [esi]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
cmp ecx, ebx
jne 0x409c8c
mov eax, dword [esi]
push str.UserInput.zip
push eax
push str._s_s
lea edx, [esp + 0x68]
push 0x200
push edx
call dword [sym.imp.MSVCR90.dll_sprintf_s]
add esp, 0x14
jmp 0x409cad
mov ecx, dword [esi]
push str..zip
push eax
push ecx
push str._s_s_s
lea eax, [esp + 0x6c]
push 0x200
push eax
call dword [sym.imp.MSVCR90.dll_sprintf_s]
add esp, 0x18
push 0x200
lea ecx, [esp + 0x260]
push ebx
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], ebx
call sub.mfc90.dll_Ordinal_580
lea ecx, [esp + 0x24]
mov dword [esp + 0x868], 2
call dword [sym.imp.mfc90.dll_Ordinal_316]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push 0x426
lea ecx, [esp + 0x28]
mov byte [esp + 0x86c], 4
call dword [sym.imp.mfc90.dll_Ordinal_4431]
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x5c]
push edx
push eax
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
push ebx
mov ebx, dword [sym.imp.MSVCR90.dll__access]
lea edx, [esp + 0x6c]
push edx
call ebx
add esp, 0x14
test eax, eax
jne 0x409dd8
cmp dword [edi + 0x20c], eax
je 0x409d58
mov eax, dword [esp + 0x2c]
push 1
push 0x415c48
push eax
mov ecx, edi
call sub.mfc90.dll_Ordinal_4502
cmp eax, 2
je 0x40a239
mov eax, dword [ebp]
mov ecx, dword [esi]
push str..zip
xor edi, edi
push edi
push eax
push ecx
push str._s_s_d_s
lea ecx, [esp + 0x270]
push 0x200
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf_s]
lea edx, [esp + 0x278]
push edi
push edx
call ebx
add esp, 0x24
test eax, eax
jne 0x409dca
mov eax, dword [ebp]
mov ecx, dword [esi]
push str..zip
inc edi
push edi
push eax
push ecx
push str._s_s_d_s
lea eax, [esp + 0x270]
push 0x200
push eax
call dword [sym.imp.MSVCR90.dll_sprintf_s]
lea ecx, [esp + 0x278]
push 0
push ecx
call ebx
add esp, 0x24
test eax, eax
je 0x409d91
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], 1
jmp 0x409df3
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x260]
push 0x200
push eax
call dword [sym.imp.MSVCR90.dll_strcpy_s]
add esp, 0xc
push 0x415c48
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90.dll_Ordinal_310]
mov ecx, dword [edi + 0x1e8]
cmp dword [ecx - 0xc], 0
lea eax, [edi + 0x1e8]
mov byte [esp + 0x868], 5
je 0x409e6e
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.00408b90
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x86c], 6
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x18]
mov byte [esp + 0x868], 5
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x30]
push eax
push ecx
lea ecx, [esp + 0x3c]
call sub.mfc90.dll_Ordinal_6153
mov edx, dword [edi + 0x148]
xor esi, esi
push esi
push esi
push 0x1004
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jle 0x409f58
add edi, 0x128
mov bl, 7
jmp 0x409ea0
push 0x415c48
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90.dll_Ordinal_310]
push 0
push esi
lea eax, [esp + 0x28]
push eax
mov ecx, edi
mov byte [esp + 0x874], bl
call sub.mfc90.dll_Ordinal_3157
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x86c], 8
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x20]
mov byte [esp + 0x868], bl
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 0
push esi
lea ecx, [esp + 0x30]
push ecx
mov ecx, edi
call sub.mfc90.dll_Ordinal_3157
mov edx, dword [esp + 0x3c]
push eax
push edx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x870], 9
call sub.mfc90.dll_Ordinal_6153
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x18]
mov byte [esp + 0x868], 5
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x148]
push 0
push 0
push 0x1004
push ecx
inc esi
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, eax
jl 0x409ea0
mov ebx, dword [sym.imp.MSVCR90.dll__access]
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x25c]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, edi
call fcn.00409320
cmp dword [esp + 0x1c], 0
je 0x409fa5
mov esi, dword [sym.imp.MSVCR90.dll_remove]
lea ecx, [esp + 0x5c]
push ecx
call esi
add esp, 4
push 0
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x264]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [esp + 0x25c]
push ecx
call esi
add esp, 4
lea edx, [esp + 0x5c]
push 0
push edx
call ebx
add esp, 8
test eax, eax
jne 0x40a228
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push 0x425
lea ecx, [esp + 0x1c]
mov byte [esp + 0x86c], 0xa
call dword [sym.imp.mfc90.dll_Ordinal_4431]
cmp dword [edi + 0x20c], 0
jne 0x40a02c
mov eax, dword [edi + 0x208]
push eax
push str.Record
push str._s_d
lea ecx, [esp + 0x468]
push 0x100
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf_s]
add esp, 0x14
push 0x415e34
push str.Send_or_Not
lea edx, [esp + 0x464]
push edx
lea ecx, [edi + 0x114]
call fcn.00405b20
jmp 0x40a216
cmp dword [esp + 0x1c], 0
je 0x40a19f
lea ecx, [esp + 0x48]
call sub.mfc90.dll_Ordinal_580
lea eax, [esp + 0x48]
lea ecx, [edi + 0x114]
push eax
mov byte [esp + 0x86c], 0xb
call fcn.00405c90
xor ebx, ebx
lea ebx, [ebx]
push ebx
push str.Record
push str._s_d
lea ecx, [esp + 0x468]
push 0x200
xor esi, esi
push ecx
mov dword [esp + 0x30], esi
call dword [sym.imp.MSVCR90.dll_sprintf_s]
add esp, 0x14
push 0x200
lea edx, [esp + 0x660]
push edx
push 0x415c48
push str.File_Name
lea eax, [esp + 0x46c]
push eax
lea ecx, [edi + 0x114]
call fcn.00405b40
mov ebp, dword [esp + 0x50]
test ebp, ebp
jle 0x40a150
test esi, esi
jl 0x40a19a
cmp esi, ebp
jge 0x40a19a
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x45c]
jmp 0x40a0e0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a100
test dl, dl
je 0x40a0fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a100
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a0e0
xor eax, eax
jmp 0x40a105
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a13d
lea ecx, [esp + 0x65c]
lea eax, [esp + 0x5c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a134
test dl, dl
je 0x40a130
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a134
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a114
xor eax, eax
jmp 0x40a139
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a148
inc esi
cmp esi, ebp
jl 0x40a0bd
jmp 0x40a150
mov dword [esp + 0x1c], 1
inc ebx
cmp ebx, ebp
jge 0x40a160
cmp dword [esp + 0x1c], 0
je 0x40a060
push 0x415e34
push str.Send_or_Not
lea edx, [esp + 0x464]
push edx
lea ecx, [edi + 0x114]
call fcn.00405b20
lea ecx, [esp + 0x48]
mov dword [edi + 0x214], 1
mov byte [esp + 0x868], 0xa
call sub.mfc90.dll_Ordinal_781
jmp 0x40a1d6
call sub.mfc90.dll_Ordinal_1252
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ebp
call dword [sym.imp.mfc90.dll_Ordinal_300]
push ecx
lea eax, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov byte [esp + 0x874], 0xc
call dword [sym.imp.mfc90.dll_Ordinal_310]
mov ecx, edi
mov byte [esp + 0x870], 0xa
call fcn.00408cd0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90.dll_Ordinal_300]
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x86c], 0xd
call dword [sym.imp.mfc90.dll_Ordinal_945]
mov eax, dword [esp + 0x20]
push 0
push 0
push eax
mov ecx, edi
call sub.mfc90.dll_Ordinal_4502
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x18]
mov byte [esp + 0x868], 5
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, edi
call sub.mfc90.dll_Ordinal_5152
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x34]
mov dword [esp + 0x868], 0xffffffff
call sub.mfc90.dll_Ordinal_781
mov ecx, dword [esp + 0x860]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x848]
xor ecx, esp
call fcn.00411bf6
add esp, 0x858
ret