Function at 0x402fd0
Capabilities:
Check if file exists
Create directory
Create thread
Get file attributes
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x445c70
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x45e560]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
push edi
mov eax, dword [0x45e560]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov edi, ecx
call fcn.0040bce1
push 0x463d18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, dword [edi + 0x20]
push str.ntdll.dll
mov dword [0x463d14], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
mov dword [esp + 0x1c], 0
test esi, esi
je 0x403060
push 0x4534a4
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x403194
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x4534b8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x30
push 0x4537b8
push str._OnInitDialog_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [edi + 0x294]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push 0x80
push dword [edi + 0x20]
call ebx
push dword [edi + 0x294]
push 0
push 0x80
push dword [edi + 0x20]
call ebx
push 0x104
push 0x4641f8
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, 0x4641f8
dec ecx
add eax, ecx
cmp byte [eax], 0x5c
je 0x4030c6
lea ecx, [ecx]
dec eax
cmp byte [eax], 0x5c
jne 0x4030c0
push 0x4641f8
push 0x104
push 0x4640f0
mov byte [eax + 1], 0
call fcn.0042ef54
push str.DATADati.dll
push 0x104
push 0x4640f0
call fcn.0042efa9
push 0x4641f8
push 0x104
push 0x463fe8
call fcn.0042ef54
push 0x4537fc
push 0x104
push 0x463fe8
call fcn.0042efa9
push 0x4641f8
push 0x104
push 0x463ee0
call fcn.0042ef54
push str.DATADT.dll
push 0x104
push 0x463ee0
call fcn.0042efa9
add esp, 0x48
push 0x4641f8
push 0x104
push 0x463dd8
call fcn.0042ef54
push str.DATADigital.dll
push 0x104
push 0x463dd8
call fcn.0042efa9
add esp, 0x18
mov dword [esp + 0x14], 0
call fcn.0040aa4f
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4031ad
push 0x80004005
call fcn.004015f0
lea ecx, [esp + 0x1c]
push ecx
push 0
push 1
push 0x14
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x403074
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x40], 0
push eax
mov ecx, edi
call fcn.00406ce0
test al, al
jne 0x4031df
push 0x453828
mov ecx, edi
call fcn.0040ca49
push 0xfffffffffffffff0
push dword [edi + 0x2bc]
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x209
push eax
push 0xfffffffffffffff0
push dword [edi + 0x2bc]
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0
push 0
push 0x1037
push dword [edi + 0x2bc]
call ebx
push 0x25
push 0
push 0x1036
push dword [edi + 0x2bc]
call ebx
push 0xffffffffffffffff
push 0x28
push 2
push 0x453834
push 0
lea ecx, [edi + 0x29c]
call fcn.00416b3f
push 0
push 0
push 0x1024
push dword [edi + 0x2bc]
call ebx
push 0xffffffffffffffff
push 0x28
push 2
push 0x453838
push 1
lea ecx, [edi + 0x29c]
call fcn.00416b3f
push 0xffffffffffffffff
push 0x69
push 2
push 0x45383c
push 2
lea ecx, [edi + 0x29c]
call fcn.00416b3f
push 0xffffffffffffffff
push 0x64
push 2
push 0x453844
push 3
lea ecx, [edi + 0x29c]
call fcn.00416b3f
push 0xffffffffffffffff
push 0x3c
push 0
push 0x45384c
push 4
lea ecx, [edi + 0x29c]
call fcn.00416b3f
cmp dword [0x464404], 0
jne 0x403326
cmp dword [0x46440c], 0
jne 0x403326
cmp dword [0x464408], 0
jne 0x403326
cmp dword [0x464410], 0
jne 0x403326
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
xorps xmm0, xmm0
push 0x464404
push dword [edi + 0x20]
movdqu xmmword [esp + 0x28], xmm0
call esi
push 0x3ee
mov ecx, edi
call fcn.0040c1da
lea ecx, [esp + 0x20]
push ecx
push dword [eax + 0x20]
call esi
mov eax, dword [0x464404]
mov dword [0x464414], eax
mov eax, dword [0x464408]
mov dword [0x464418], eax
mov eax, dword [0x46440c]
mov dword [0x46441c], eax
mov eax, dword [esp + 0x2c]
mov dword [0x464420], eax
push 0x453854
push 0x3ea
mov ecx, edi
call fcn.0040c97e
mov eax, dword [0x464410]
mov ecx, edi
sub eax, dword [0x464408]
push 6
push eax
mov eax, dword [0x46440c]
sub eax, dword [0x464404]
push eax
push 0
push 0
push 0
call fcn.0040ca0d
push 0x5f5f5f
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0x454537
lea ecx, [esp + 0x14]
mov dword [edi + 0x298], eax
mov dword [esp + 0x14], 0
call fcn.00409e50
lea edx, [esp + 0x10]
mov byte [esp + 0x40], 1
mov ecx, str.suzi
call fcn.00401a10
test al, al
je 0x4033f2
mov eax, dword [esp + 0x10]
mov ecx, 0x453868
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4033c5
test dl, dl
je 0x4033c1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4033c5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4033a5
xor eax, eax
jmp 0x4033ca
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4033f2
push 0x3f4
mov ecx, edi
call fcn.0040c1da
push 0
push 1
push 0xf1
push dword [eax + 0x20]
call ebx
mov dword [0x463d60], 1
lea eax, [esp + 0x18]
push eax
push 0
push edi
push 0x403fe0
push 0
push 0
call fcn.0042e58b
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0x18
push eax
call esi
lea eax, [esp + 0x18]
push eax
push 0
push edi
push 0x404ce0
push 0
push 0
call fcn.0042e58b
add esp, 0x18
push eax
call esi
lea eax, [esp + 0x18]
push eax
push 0
push edi
push 0x4038a0
push 0
push 0
call fcn.0042e58b
add esp, 0x18
push eax
call esi
lea eax, [esp + 0x18]
push eax
push 0
push edi
push 0x403c40
push 0
push 0
call fcn.0042e58b
add esp, 0x18
push eax
call esi
call fcn.00403680
test al, al
je 0x4034fe
call fcn.00403790
test al, al
je 0x4034fe
mov edx, 0x464424
mov ecx, str.username
call fcn.00401a10
test al, al
je 0x4034ae
push 0x3fb
mov ecx, edi
call fcn.0040c1da
push dword [0x464424]
mov ecx, eax
call fcn.0040ca49
mov edx, 0x464428
mov ecx, str.mima
call fcn.00401a10
test al, al
je 0x4034da
push 0x3ed
mov ecx, edi
call fcn.0040c1da
push dword [0x464428]
mov ecx, eax
call fcn.0040ca49
push str.C:TL_DATA
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4034f7
push 0
push str.C:TL_DATA
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebx, 1
jmp 0x403514
push 0x30
push 0x45386c
push 0x453874
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor ebx, ebx
mov byte [esp + 0x40], 0
or esi, 0xffffffff
mov edx, dword [esp + 0x10]
mov eax, esi
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x403539
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x40], 0xffffffff
mov edi, dword [esp + 0x14]
add edi, 0xfffffff0
lea eax, [edi + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x40355c
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0042d7a3
mov esp, ebp
pop ebp
ret