Function at 0x402b50
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], str.http:__www.aec188.com_share_123456.dwg
mov dword [ebp - 0x4c], str.D:_test1.bmp
cmp eax, 3
jne 0x402c27
mov edi, dword [ecx + 4]
test edi, edi
jne 0x402b8f
mov dword [ebp - 0x40], edi
jmp 0x402bd4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x402bcc
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00406010
mov esi, esp
test esi, esi
je 0x402bcc
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x402bce
xor eax, eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x40], eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x402be0
mov dword [ebp - 0x4c], edi
jmp 0x402c33
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x402c20
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00406010
mov esi, esp
test esi, esi
je 0x402c20
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
mov dword [ebp - 0x4c], eax
jmp 0x402c33
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x402c33
cmp eax, 7
jl 0x402c33
mov dword [ebp - 0x40], str.email:_wangsli_163.com_qq:34382796
mov ebx, dword [ebp - 0x40]
call fcn.00402a90
xor ebx, ebx
mov dword [ebp - 0x48], eax
cmp eax, ebx
je 0x402e15
mov edi, dword [eax + 4]
lea eax, [edi + edi*2]
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x40], eax
test al, 3
je 0x402c68
shr eax, 2
lea eax, [eax*4 + 4]
mov dword [ebp - 0x40], eax
mov esi, eax
imul esi, edi
add esi, esi
add esi, esi
add esi, esi
push esi
mov dword [ebp - 0x60], esi
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
mov dword [ebp - 0x58], eax
cmp eax, ebx
jne 0x402c9d
push str.Out_of_memory
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
push esi
push 0xff
push eax
call sub.MSVCR100.dll_memset
xor edx, edx
mov dword [ebp - 0xe], edx
mov ecx, 0x4d42
mov edx, edi
neg edx
add edx, edx
mov word [ebp - 0x14], cx
lea ecx, [edi*8]
add edx, edx
add edx, edx
mov dword [ebp - 0x38], ecx
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x34], edx
mov edx, 0x18
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x48]
add esi, 0x36
mov word [ebp - 0x2e], dx
mov edx, dword [eax + 8]
add esp, 0xc
mov dword [ebp - 0x12], esi
mov dword [ebp - 0xa], 0x36
mov dword [ebp - 0x3c], 0x28
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x50], edx
cmp edi, ebx
jbe 0x402d7b
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x40]
add edx, 2
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x40], edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x50]
test byte [eax], 1
je 0x402d5c
mov eax, edx
mov ecx, 8
nop
mov dword [eax - 2], ebx
mov dword [eax + 2], ebx
mov dword [eax + 6], ebx
mov dword [eax + 0xa], ebx
mov dword [eax + 0xe], ebx
mov dword [eax + 0x12], ebx
add eax, esi
dec ecx
jne 0x402d40
mov ecx, 1
add dword [ebp - 0x50], ecx
add edx, 0x18
sub dword [ebp - 0x40], ecx
jne 0x402d30
mov edx, dword [ebp - 0x5c]
lea eax, [esi*8]
add edx, eax
sub dword [ebp - 0x54], ecx
mov dword [ebp - 0x5c], edx
jne 0x402d27
mov ecx, dword [ebp - 0x4c]
push 0x40801c
push ecx
lea edx, [ebp - 0x44]
push edx
call dword [sym.imp.MSVCR100.dll_fopen_s]
add esp, 0xc
test eax, eax
jne 0x402dff
mov eax, dword [ebp - 0x44]
mov esi, dword [sym.imp.MSVCR100.dll_fwrite]
push eax
push 1
lea ecx, [ebp - 0x14]
push 0xe
push ecx
call esi
mov edx, dword [ebp - 0x44]
push edx
push 1
lea eax, [ebp - 0x3c]
push 0x28
push eax
call esi
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x58]
push ecx
push edx
push 1
push edi
call esi
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
mov esi, dword [sym.imp.MSVCR100.dll_free]
push edi
call esi
mov edi, dword [ebp - 0x48]
mov ecx, dword [edi + 8]
push ecx
call esi
push edi
call esi
add esp, 0x40
xor eax, eax
lea esp, [ebp - 0x6c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040581d
mov esp, ebp
pop ebp
ret
push str.Unable_to_open_file
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
push str.NULL_returned
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
int3