Function at 0x401f90
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1f58
call fcn.00403a30
mov eax, dword [0x406018]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x4064a0
push 0x67
push esi
mov dword [ebp - 0x1f38], eax
call edi
push 0x64
push 0x4063d8
push 0x6d
push esi
call edi
mov eax, esi
call fcn.00401c10
push 0
push esi
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x4064a0
push 0x4063d8
push 0
mov dword [0x406568], esi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, eax
test edi, edi
je 0x40211c
mov ecx, dword [ebp + 0x14]
push ecx
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
xor edx, edx
push 0x1fe
mov dword [ebp - 0x1f3c], eax
push edx
lea eax, [ebp - 0x4ee]
push eax
mov word [ebp - 0x4f0], dx
call sub.MSVCR100.dll_memset
xor ecx, ecx
push 0x7fe
push ecx
lea edx, [ebp - 0x16fa]
push edx
mov word [ebp - 0x16fc], cx
call sub.MSVCR100.dll_memset
xor eax, eax
push 0x2e
push eax
lea ecx, [ebp - 0x6e]
push ecx
mov word [ebp - 0x70], ax
call sub.MSVCR100.dll_memset
xor edx, edx
push 0x2e
push edx
lea eax, [ebp - 0x3e]
push eax
mov word [ebp - 0x40], dx
call sub.MSVCR100.dll_memset
xor ecx, ecx
push 0x7fe
push ecx
lea edx, [ebp - 0x1efa]
push edx
mov word [ebp - 0x1efc], cx
call sub.MSVCR100.dll_memset
xor eax, eax
push 0x7e
push eax
lea ecx, [ebp - 0xee]
push ecx
mov word [ebp - 0xf0], ax
call sub.MSVCR100.dll_memset
mov edx, dword [ebp - 0x1f38]
mov edi, dword [sym.imp.MSVCR100.dll_wcsstr]
add esp, 0x48
push str.__md5
push edx
call edi
mov ebx, dword [sym.imp.MSVCR100.dll_wcsncat]
mov esi, eax
add esp, 8
test esi, esi
je 0x402142
add esi, 0xc
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x402130
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402102
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0x4f0]
push eax
jmp 0x40213d
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403017
mov esp, ebp
pop ebp
ret 0x10
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x4f0]
push ecx
call ebx
add esp, 0xc
mov edx, dword [ebp - 0x1f38]
push 0x4044e8
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x40219c
add esi, 0xe
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x40218a
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402170
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0x16fc]
push eax
jmp 0x402197
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x16fc]
push ecx
call ebx
add esp, 0xc
mov edx, dword [ebp - 0x1f38]
push str.__ext
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4021fc
add esi, 0xc
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x4021ea
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4021d0
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0xf0]
push eax
jmp 0x4021f7
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0xf0]
push ecx
call ebx
add esp, 0xc
mov edx, dword [ebp - 0x1f38]
push str.__icon
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x402263
add esi, 0xe
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x40224a
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402230
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0x1efc]
push eax
jmp 0x402257
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x1efc]
push ecx
call ebx
add esp, 0xc
mov byte [0x40657c], 1
mov edx, dword [ebp - 0x1f38]
push str.__hwnd
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4022b7
add esi, 0xe
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x4022a8
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402291
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0x70]
push eax
jmp 0x4022b2
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x70]
push ecx
call ebx
add esp, 0xc
mov edx, dword [ebp - 0x1f38]
push str.__index
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x40230b
add esi, 0x10
push 0x4044e4
push esi
call edi
add esp, 8
test eax, eax
jne 0x4022fc
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4022e5
sub eax, edx
sar eax, 1
push eax
push esi
lea eax, [ebp - 0x40]
push eax
jmp 0x402306
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x40]
push ecx
call ebx
add esp, 0xc
mov edx, dword [str.md5:]
mov eax, dword [0x404540]
mov cx, word [0x404544]
push 0x1f6
mov dword [ebp - 0x2f0], edx
lea edx, [ebp - 0x2e6]
push 0
push edx
mov dword [ebp - 0x2ec], eax
mov word [ebp - 0x2e8], cx
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x4f0]
add esp, 0xc
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402350
lea edi, [ebp - 0x2f0]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x402366
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [0x404550]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [str.file:]
and ecx, 3
push 0x7f4
mov dword [ebp - 0xefc], eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x40454c]
lea eax, [ebp - 0xef0]
push 0
push eax
mov dword [ebp - 0xef8], ecx
mov dword [ebp - 0xef4], edx
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x16fc]
add esp, 0xc
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4023c3
lea edi, [ebp - 0xefc]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4023e0
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [0x404558]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x40455c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [str.icon:]
push 0x7f4
mov dword [ebp - 0xefc], ecx
lea ecx, [ebp - 0xef0]
push 0
push ecx
mov dword [ebp - 0xef8], edx
mov dword [ebp - 0xef4], eax
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x1efc]
add esp, 0xc
mov edx, eax
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402440
lea edi, [ebp - 0xefc]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x402456
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea edx, [ebp - 0x70]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.MSVCR100.dll__wtoi]
push edx
call esi
mov edi, eax
lea eax, [ebp - 0x40]
push eax
call esi
push 1
mov dword [0x406570], edi
mov dword [0x406574], eax
call dword [sym.imp.libeSDKOBS.dll_obs_initialize]
xor ecx, ecx
push 0x208
push ecx
lea edx, [ebp - 0x6fa]
push edx
mov word [ebp - 0x6fc], cx
call sub.MSVCR100.dll_memset
add esp, 0x18
push 0x104
lea eax, [ebp - 0x6fc]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ecx, ecx
lea eax, [ebp - 0x6fc]
mov dword [ebp - 0x1f04], 7
mov dword [ebp - 0x1f08], 0
mov word [ebp - 0x1f18], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4024f1
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x6fc]
lea ecx, [ebp - 0x1f18]
call fcn.00402b60
lea edx, [ebp - 0x1f18]
push edx
lea ebx, [ebp - 0x1f34]
call fcn.00401df0
add esp, 4
mov edi, eax
lea esi, [ebp - 0x1f18]
call fcn.004028b0
cmp dword [ebp - 0x1f20], 8
jb 0x40254d
mov eax, dword [ebp - 0x1f34]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea ecx, [ebp - 0x1f18]
push ecx
lea ebx, [ebp - 0x1f34]
call fcn.00401df0
add esp, 4
mov edi, eax
lea esi, [ebp - 0x1f18]
call fcn.004028b0
cmp dword [ebp - 0x1f20], 8
jb 0x402588
mov edx, dword [ebp - 0x1f34]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
push 6
mov eax, str.data_
lea ecx, [ebp - 0x1f18]
call fcn.00402a80
lea eax, [ebp - 0x4f0]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4025a3
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x4f0]
lea ecx, [ebp - 0x1f18]
call fcn.00402a80
cmp byte [0x40657c], 0
je 0x402637
push 4
mov eax, str..png
lea ecx, [ebp - 0x1f18]
mov dword [0x406570], 0
call fcn.00402a80
mov eax, dword [ebp - 0x1f18]
mov esi, 8
cmp dword [ebp - 0x1f04], esi
jae 0x402602
lea eax, [ebp - 0x1f18]
push 0
push eax
lea eax, [ebp - 0x1efc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [ebp - 0x1f18]
cmp dword [ebp - 0x1f04], esi
jae 0x402626
lea eax, [ebp - 0x1f18]
push eax
lea ecx, [ebp - 0x4f0]
call fcn.004019a0
jmp 0x4027a1
push 0xff
lea ecx, [ebp - 0x1ef]
push 0
push ecx
mov byte [ebp - 0x1f0], 0
call sub.MSVCR100.dll_memset
mov esi, dword [sym.imp.MSVCR100.dll_setlocale]
push 0x404367
push 0
call esi
push 0x100
lea edx, [ebp - 0xf0]
push edx
lea eax, [ebp - 0x1f0]
push eax
call dword [sym.imp.MSVCR100.dll_wcstombs]
push 0x4041ec
push 0
call esi
lea eax, [ebp - 0x1f0]
add esp, 0x28
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402690
sub eax, edx
jne 0x4026fb
push 4
mov eax, str..apk
lea ecx, [ebp - 0x1f18]
call fcn.00402a80
mov eax, dword [ebp - 0x1f18]
mov esi, 8
cmp dword [ebp - 0x1f04], esi
jae 0x4026c6
lea eax, [ebp - 0x1f18]
push 0
push eax
lea ecx, [ebp - 0x16fc]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [ebp - 0x1f18]
cmp dword [ebp - 0x1f04], esi
jae 0x4026ea
lea eax, [ebp - 0x1f18]
push eax
lea ecx, [ebp - 0x4f0]
call fcn.004016f0
jmp 0x4027a1
lea eax, [ebp - 0xf0]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402704
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0x1f18]
call fcn.00402a80
mov eax, dword [ebp - 0x1f18]
mov esi, 8
cmp dword [ebp - 0x1f04], esi
jae 0x40273e
lea eax, [ebp - 0x1f18]
push 0
push eax
lea edx, [ebp - 0x16fc]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40277b
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
mov dword [ebp - 0xf], ecx
mov dword [ebp - 0xb], ecx
mov word [ebp - 7], cx
mov byte [ebp - 5], cl
push 0xa
lea ecx, [ebp - 0x10]
push ecx
push eax
mov byte [ebp - 0x10], 0
call dword [sym.imp.MSVCR100.dll__itoa]
add esp, 0xc
mov eax, dword [ebp - 0x1f18]
cmp dword [ebp - 0x1f04], esi
jae 0x40278f
lea eax, [ebp - 0x1f18]
push eax
lea edx, [ebp - 0x1f0]
lea ecx, [ebp - 0x4f0]
call fcn.00401410
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
add esp, 4
push 0
push 0
push 0
lea edx, [ebp - 0x1f58]
push edx
call esi
test eax, eax
je 0x402814
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
lea esp, [esp]
mov ecx, dword [ebp - 0x1f3c]
mov edx, dword [ebp - 0x1f58]
lea eax, [ebp - 0x1f58]
push eax
push ecx
push edx
call edi
test eax, eax
jne 0x402801
lea eax, [ebp - 0x1f58]
push eax
call ebx
lea ecx, [ebp - 0x1f58]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea edx, [ebp - 0x1f58]
push edx
call esi
test eax, eax
jne 0x4027d0
cmp dword [ebp - 0x1f04], 8
mov esi, dword [ebp - 0x1f50]
pop ebx
jb 0x402834
mov eax, dword [ebp - 0x1f18]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
xor ecx, ebp
pop esi
call fcn.00403017
mov esp, ebp
pop ebp
ret 0x10