Function at 0x475f42
Capabilities:
Check for software breakpoints
Check if file exists
Create directory
Delete file
Identify system language via api
Move file
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [0x405084], 8
je 0x475f5d
push dword [ebp + 8]
call fcn.0047680c
leave
ret 4
mov eax, dword [0x405090]
cmp eax, 0xcc
jl 0x475f81
cmp eax, 0xce
jg 0x475f81
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
mov eax, dword [ebp - 0xc]
jmp 0x4767fe
cmp eax, 0xcf
jl 0x4767e0
cmp eax, 0xe1
jg 0x4767e0
push 0x28
call fcn.0047695d
cmp eax, 0xcf
jne 0x475fed
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.00475b7f
mov ecx, 1
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
test edi, edi
jl 0x475fe6
test edx, edx
jl 0x475fe6
mov eax, edx
and eax, 1
je 0x475fdb
imul ecx, edi
sar edx, 1
jne 0x475fe1
jmp 0x475fe6
imul edi, edi
jmp 0x475fd1
mov eax, ecx
jmp 0x4767d7
cmp eax, 0xd0
jne 0x476022
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.00475b7f
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.0046b943
mov eax, dword [0x4012a8]
jmp 0x4767d7
cmp eax, 0xd1
jne 0x476055
call dword [sym.imp.msvcrt.dll_rand]
call fcn.00472df1
cmp word [esi], 0x29
je 0x476050
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
mov ecx, dword [ebp - 0xc]
cmp ecx, 0
je 0x47604e
cdq
idiv ecx
mov eax, edx
jmp 0x4767d7
cmp eax, 0xd2
jne 0x476072
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
mov eax, dword [ebp - 0xc]
cdq
xor eax, edx
sub eax, edx
jmp 0x4767d7
cmp eax, 0xd3
jne 0x47608f
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
push dword [ebp - 0xc]
call fcn.0046b847
jmp 0x4767d7
cmp eax, 0xd4
jne 0x476183
call fcn.00472df1
cmp word [esi], 0x29
jne 0x4760b0
call dword [sym.imp.kernel32.dll_GetTickCount]
jmp 0x4767d7
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
mov eax, dword [ebp - 0xc]
test eax, eax
jle 0x4760a5
cmp eax, 1
jne 0x4760d3
push 0
push 0
call fcn.00472f96
jmp 0x47617e
cmp eax, 2
jne 0x4760f6
mov ebx, dword [0x405088]
call dword [sym.imp.kernel32.dll_GetCurrentProcess]
push 0x28
push ebx
push eax
call dword [sym.imp.psapi.dll_GetProcessMemoryInfo]
mov eax, dword [ebx + 0xc]
jmp 0x47617e
cmp eax, 3
jne 0x476103
call dword [sym.imp.kernel32.dll_GetSystemDefaultUILanguage]
jmp 0x47617e
cmp eax, 4
jne 0x476110
call dword [sym.imp.kernel32.dll_GetUserDefaultUILanguage]
jmp 0x47617e
cmp eax, 5
jne 0x47611d
call dword [sym.imp.kernel32.dll_GetConsoleCP]
jmp 0x47617e
cmp eax, 6
jne 0x47612a
call dword [sym.imp.kernel32.dll_GetConsoleOutputCP]
jmp 0x47617e
cmp eax, 7
jne 0x47613d
push dword [0x40503c]
call dword [sym.imp.kernel32.dll_lstrlenW]
jmp 0x47617e
cmp eax, 8
jne 0x476149
mov eax, dword [0x4050e0]
jmp 0x47617e
cmp eax, 9
jne 0x476155
mov eax, dword [0x4050d0]
jmp 0x47617e
cmp eax, 0xa
jne 0x476161
mov eax, dword [0x4050dc]
jmp 0x47617e
cmp eax, 0xb
jne 0x476171
push 0
push 1
call fcn.00472f96
jmp 0x47617e
cmp eax, 0x1b5
jl 0x47617e
call dword [sym.imp.kernel32.dll_SetConsoleOutputCP]
jmp 0x4767d7
cmp eax, 0xd5
jne 0x47629f
call fcn.004745ed
call fcn.00472df1
xor eax, eax
cmp dword [0x405084], 9
je 0x4761ac
cmp dword [0x405084], 0xa
jne 0x4761dc
mov bx, word [esi]
lea edx, [ebp - 0xc]
push edx
call fcn.00475942
cmp bx, 0x5d
jne 0x4761c3
mov eax, dword [eax + 0x50]
jmp 0x4761d7
mov edi, dword [eax + 0x44]
mov ecx, dword [ebp - 0xc]
lea eax, [edi + ecx*4]
push dword [eax]
call fcn.0046fc35
mov edi, eax
jmp 0x476251
jmp 0x47629a
cmp dword [0x405084], 0xd
jne 0x4761fb
cmp word [esi], 0x5d
jne 0x4761fb
add esi, 2
call fcn.00476fd3
mov eax, dword [eax + 0x4c]
jmp 0x47629a
cmp dword [0x405084], 3
je 0x47623f
cmp dword [0x405084], 0xb
je 0x47623f
cmp dword [0x405084], 8
jne 0x476224
cmp eax, 0xe2
jl 0x476224
cmp eax, 0xf5
jle 0x47623f
cmp dword [0x405084], 0xa
je 0x47623f
cmp dword [0x405084], 0xd
je 0x47623f
cmp dword [0x405084], 8
jne 0x47629a
mov esi, dword [0x4050c4]
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
mov edi, dword [ebp - 0xc]
push 4
call 0x476262
push 0x74007400
add byte [eax], dh
add byte [eax], al
push edi
call dword [sym.imp.shlwapi.dll_StrCmpNIW]
cmp eax, 0
jne 0x476278
push 0
push edi
call fcn.00473235
jmp 0x47629a
mov ebx, dword [0x405088]
push ebx
push 0
push edi
call dword [sym.imp.kernel32.dll_GetFileAttributesExW]
cmp eax, 0
jne 0x476297
mov eax, 0xffffffff
jmp 0x4767d7
mov eax, dword [ebx + 0x20]
jmp 0x4767d7
cmp eax, 0xd6
jne 0x4762bc
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push dword [ebp - 0xc]
call fcn.00472e6e
jmp 0x4767d7
cmp eax, 0xd7
jne 0x476319
call fcn.004745ed
call fcn.00472df1
cmp dword [0x405084], 9
je 0x4762df
cmp dword [0x405084], 0xa
jne 0x4762fc
lea edx, [ebp - 0xc]
push edx
call fcn.00475942
mov edi, dword [eax + 0x44]
mov ecx, dword [ebp - 0xc]
push dword [edi + ecx*4]
call dword [sym.imp.kernel32.dll_lstrlenW]
jmp 0x4767d7
mov esi, dword [0x4050c4]
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push dword [ebp - 0xc]
call dword [sym.imp.kernel32.dll_lstrlenW]
jmp 0x4767d7
cmp eax, 0xd8
jne 0x476336
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
mov edx, dword [ebp - 0xc]
xor eax, eax
mov ax, word [edx]
jmp 0x4767d7
cmp eax, 0xd9
jne 0x476347
call fcn.004704bf
jmp 0x4767d7
cmp eax, 0xda
jne 0x4763e7
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.0046eceb
call fcn.00472df1
cmp word [esi], 0x29
jne 0x47637f
mov dword [ebp - 4], 1
jmp 0x47638f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 4]
push edx
call fcn.00475b7f
push dword [ebp - 8]
call dword [sym.imp.kernel32.dll_lstrlenW]
test eax, eax
je 0x4767d7
push dword [ebp - 0xc]
call dword [sym.imp.kernel32.dll_lstrlenW]
test eax, eax
je 0x4767d7
mov edi, dword [ebp - 4]
cmp edi, 1
jl 0x4763bd
cmp edi, eax
jbe 0x4763c4
xor eax, eax
jmp 0x4767d7
add edi, edi
add edi, dword [ebp - 0xc]
sub edi, 2
push dword [ebp - 8]
push edi
call dword [sym.imp.shlwapi.dll_StrStrW]
cmp eax, 0
je 0x4763e2
sub eax, edi
shr eax, 1
add eax, 1
jmp 0x4767d7
cmp eax, 0xdb
jne 0x476423
push 0x4050cc
call fcn.00475b7f
mov eax, dword [0x4050cc]
cmp eax, 0
jl 0x476412
cmp eax, 0xffff
jg 0x476412
cmp dword [0x4050ec], 1
jne 0x476419
mov eax, 0xffffffff
jmp 0x47641e
call fcn.0046cde9
jmp 0x4767d7
cmp eax, 0xdc
jne 0x476498
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.00475b7f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 4]
push edx
call fcn.0046eceb
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
cmp eax, 0
je 0x476484
cmp ecx, 0
jl 0x476484
cmp ecx, 0xffff
jg 0x476484
cmp ecx, dword [0x4050cc]
je 0x476484
cmp edx, 0
je 0x476484
cmp dword [0x4050ec], 0
jne 0x47648b
mov eax, 0xffffffff
jmp 0x476493
push edx
push ecx
push eax
call fcn.0046d1fe
jmp 0x4767d7
cmp eax, 0xdd
jne 0x4764a9
call fcn.0046cf74
jmp 0x4767d7
cmp eax, 0xde
jne 0x47657d
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.0046eceb
push 0x2c
call fcn.0047695d
call fcn.004745ed
cmp dword [0x405084], 9
je 0x4764eb
cmp dword [0x405084], 0xa
jne 0x4764f8
lea edx, [ebp - 4]
push edx
call fcn.00475942
mov ebx, eax
jmp 0x47650c
mov esi, dword [0x4050c4]
lea edx, [ebp - 4]
push edx
call fcn.00475b7f
mov ebx, 0xffffffff
mov dword [ebp - 4], 0
cmp dword [ebp - 0xc], 0
je 0x476575
mov edx, dword [ebp - 8]
xor eax, eax
mov ax, word [edx]
mov dword [ebp - 8], eax
lea edx, [ebp - 8]
push edx
push dword [ebp - 0xc]
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
cmp eax, 0
je 0x476575
cmp ebx, 0xffffffff
je 0x476560
mov edi, eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebx + 0x50]
jge 0x4048b9
lea ecx, [ecx*4]
mov edx, dword [ebx + 0x44]
add edx, ecx
push edi
call fcn.00472db1
mov dword [edx], eax
add dword [ebp - 4], 1
lea edx, [ebp - 8]
push edx
push 0
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
jmp 0x476534
mov eax, dword [ebp - 4]
jmp 0x4767d7
cmp eax, 0xdf
jne 0x4765cc
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 8]
push edx
call fcn.00475b7f
push 0x2c
call fcn.0047695d
lea edx, [ebp - 4]
push edx
call fcn.00475b7f
mov ecx, dword [ebp - 8]
add ecx, 1
sub ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
shr eax, cl
or edx, 0xffffffff
mov ecx, dword [ebp - 4]
shl edx, cl
not edx
and eax, edx
jmp 0x4767d7
cmp eax, 0xe0
jne 0x476660
call fcn.00472df1
cmp word [esi], 0x29
jne 0x4765ec
mov eax, dword [0x4050e8]
jmp 0x4767d7
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
mov eax, dword [ebp - 0xc]
cmp eax, 0
jle 0x476626
cmp eax, 0xffff
jge 0x476626
cmp dword [0x4050e4], 0
jne 0x476624
push 1
push 0
push 0x476c8a
push 0
push eax
call dword [sym.imp.winmm_timeSetEvent]
mov dword [0x4050e4], eax
jmp 0x47665b
cmp eax, 0
jne 0x47664c
cmp dword [0x4050e4], 0
je 0x47664a
push dword [0x4050e4]
call dword [sym.imp.winmm_timeKillEvent]
mov dword [0x4050e4], 0
jmp 0x47665b
cmp eax, 0
jge 0x47665b
mov dword [0x4050e8], 0
jmp 0x4767d7
cmp eax, 0xe1
jne 0x4767d7
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
push 0x2c
call fcn.0047695d
call fcn.004745ed
mov esi, dword [0x4050c4]
cmp dword [0x405084], 3
je 0x4766b8
cmp dword [0x405084], 0xb
je 0x4766b8
cmp dword [0x405084], 8
jne 0x4766af
cmp eax, 0xe2
jl 0x4766af
cmp eax, 0xf5
jle 0x4766b8
cmp dword [0x405084], 0xa
jne 0x4766da
lea edx, [ebp - 8]
push edx
call fcn.0046eceb
push dword [ebp - 8]
push dword [ebp - 0xc]
call dword [sym.imp.kernel32.dll_MoveFileW]
test eax, eax
je 0x4767c2
jmp 0x4767d7
lea edx, [ebp - 8]
push edx
call fcn.00475b7f
mov ebx, dword [ebp - 0xc]
nop
call 0x4766f6
or dword [eax], eax
and byte [eax], al
or eax, 0xa00
add byte [ebx - 1], dl
adc eax, sym.imp.shlwapi.dll_StrTrimW
push ebx
call dword [sym.imp.kernel32.dll_lstrlenW]
test eax, eax
je 0x4767d7
mov ecx, dword [ebp - 8]
mov eax, 0xffffffff
cmp ecx, 0
jne 0x47675c
mov edi, dword [0x405088]
push 0x104
push edi
call fcn.0046bff6
mov dword [edi + 4], 3
mov eax, dword [0x40508c]
push 0x1000
push eax
call fcn.0046bff6
push ebx
push eax
call dword [sym.imp.kernel32.dll_lstrcpyW]
mov dword [edi + 8], eax
mov dword [edi + 0x10], 0x215
push edi
call dword [sym.imp.shell32_SHFileOperationW]
jmp 0x4767c0
cmp ecx, 1
jne 0x476770
push 0
push ebx
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
test eax, eax
je 0x4767c2
jmp 0x4767c0
cmp ecx, 2
jne 0x47679e
push 0
push pe_nt_image_headers32
push 2
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.kernel32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x4767c2
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
xor eax, eax
jmp 0x4767c0
cmp ecx, 3
jne 0x4767b0
push ebx
call dword [sym.imp.shlwapi.dll_PathFileExistsW]
test eax, eax
je 0x4767c2
jmp 0x4767c0
cmp ecx, 4
jne 0x4767c0
push ebx
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x4767c2
jmp 0x4767d7
push eax
call dword [sym.imp.kernel32.dll_GetLastError]
mov edx, dword [0x405044]
push eax
pop dword [edx + 0x44]
add edx, 0x58
pop eax
push 0x29
call fcn.0047695d
jmp 0x4767fe
cmp eax, 0
jne 0x4767ec
call fcn.0046d364
jmp 0x4767fe
mov esi, dword [0x4050c4]
lea edx, [ebp - 0xc]
push edx
call fcn.0046eceb
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
call fcn.004745ed
leave
ret 4