Function at 0x412120
Capabilities:
Check if file exists
Delete file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42e731
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x43b050]
xor eax, esp
mov dword [esp + 0xa4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x43b050]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xcc]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
xor edi, edi
cmp byte [ebp + 0x3c], 0
mov dword [esp + 0x1c], ebp
mov esi, 8
jne 0x4121a9
cmp dword [ebp + 0x38], esi
jb 0x412183
mov eax, dword [ebp + 0x24]
jmp 0x412186
lea eax, [ebp + 0x24]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4121a9
cmp dword [ebp + 0x38], esi
jb 0x41219b
mov eax, dword [ebp + 0x24]
jmp 0x41219e
lea eax, [ebp + 0x24]
push eax
call ebx
test eax, eax
je 0x4129d3
lea eax, [ebp + 0x20]
lea ecx, [esp + 0x80]
call fcn.004181b0
mov dword [esp + 0xc4], edi
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x98], esi
jae 0x4121d6
lea eax, [esp + 0x84]
push eax
call ebx
test eax, eax
jne 0x41220d
lea ecx, [esp + 0x80]
call fcn.00417d60
test eax, eax
jne 0x41220d
cmp dword [esp + 0x98], esi
jb 0x412206
mov eax, dword [esp + 0x84]
push eax
call fcn.0041f860
add esp, 4
xor al, al
jmp 0x4129d5
push edi
push 0x43682e
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.004015d0
mov byte [esp + 0xc4], 1
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp]
mov ebx, dword [eax]
mov dword [esp + 0x14], edi
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp]
test edi, edi
je 0x412255
cmp edi, eax
je 0x41225a
call fcn.004204b3
cmp ebx, esi
je 0x412421
test edi, edi
jne 0x4122ec
call fcn.004204b3
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x41227b
call fcn.004204b3
mov ecx, dword [ebx + 0x40]
mov edi, dword [ecx]
mov ebp, dword [ebx + 0x28]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4122f0
call fcn.004204b3
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x41229c
call fcn.004204b3
mov esi, dword [ebx + 0x40]
mov eax, dword [ebx + 0x28]
test ebp, ebp
je 0x4122aa
cmp ebp, eax
je 0x4122af
call fcn.004204b3
cmp edi, esi
je 0x4123a7
test ebp, ebp
jne 0x4122f4
call fcn.004204b3
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x4122cc
call fcn.004204b3
mov esi, dword [edi + 0x20]
mov eax, esi
cmp eax, esi
jae 0x4122d5
mov eax, esi
cmp esi, 8
jb 0x4122e1
mov eax, 8
cmp dword [edi + 0x24], 0x10
jb 0x4122f9
mov edx, dword [edi + 0x10]
jmp 0x4122fc
mov eax, dword [edi]
jmp 0x412271
mov eax, dword [eax]
jmp 0x412292
mov eax, dword [ebp]
jmp 0x4122c2
lea edx, [edi + 0x10]
mov ecx, str.config15
call fcn.004018a0
test eax, eax
jne 0x412319
cmp esi, 8
jb 0x412319
cmp esi, 8
setne al
test eax, eax
je 0x412340
test ebp, ebp
jne 0x412359
call fcn.004204b3
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x41232e
call fcn.004204b3
push 0
lea edx, [edi + 0x28]
push edx
or eax, 0xffffffff
lea esi, [esp + 0x6c]
call fcn.0040e310
test ebp, ebp
jne 0x412349
call fcn.004204b3
cmp byte [edi + 0x45], 0
je 0x41235e
call fcn.004204b3
jmp 0x412283
mov eax, dword [ebp]
jmp 0x412324
mov ecx, dword [edi + 8]
cmp byte [ecx + 0x45], 0
jne 0x412381
mov eax, dword [ecx]
cmp byte [eax + 0x45], 0
jne 0x41237a
nop
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x45], 0
je 0x412370
mov edi, ecx
jmp 0x412283
mov eax, dword [edi + 4]
cmp byte [eax + 0x45], 0
jne 0x4123a0
lea ebx, [ebx]
cmp edi, dword [eax + 8]
jne 0x4123a0
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x45], 0
je 0x412390
mov edi, eax
jmp 0x412283
cmp dword [esp + 0x14], 0
jne 0x4123b3
call fcn.004204b3
cmp byte [ebx + 0x49], 0
je 0x4123cb
call fcn.004204b3
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
jmp 0x412247
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0x49], 0
jne 0x4123f9
mov eax, dword [ecx]
cmp byte [eax + 0x49], 0
jne 0x4123ea
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x49], 0
je 0x4123e0
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebx, ecx
jmp 0x412247
mov eax, dword [ebx + 4]
cmp byte [eax + 0x49], 0
jne 0x412412
cmp ebx, dword [eax + 8]
jne 0x412412
mov ebx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x49], 0
je 0x412402
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebx, eax
jmp 0x412247
cmp dword [esp + 0x78], 0
je 0x4124ff
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x68]
call fcn.00412a00
mov byte [esp + 0xc4], 2
push 8
mov edi, 0xf
xor esi, esi
push str.config15
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], esi
mov byte [esp + 0x30], 0
call fcn.004015d0
mov byte [esp + 0xc4], 3
push 7
push str.config4
lea ecx, [esp + 0x50]
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], esi
mov byte [esp + 0x54], 0
call fcn.004015d0
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x50]
mov edx, ebp
mov byte [esp + 0xcc], 4
call fcn.00411080
mov ebx, 0x10
cmp dword [esp + 0x60], ebx
jb 0x4124c6
mov eax, dword [esp + 0x4c]
push eax
call fcn.0041f860
add esp, 4
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], esi
mov byte [esp + 0x4c], 0
cmp dword [esp + 0x3c], ebx
jb 0x4124e6
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041f860
add esp, 4
cmp dword [esp + 0xb4], ebx
jb 0x4124ff
mov edx, dword [esp + 0xa0]
push edx
call fcn.0041f860
add esp, 4
xor esi, esi
mov dword [esp + 0x20], esi
lea ebx, [ebp + 0x20]
mov ecx, ebx
lea edi, [esp + 0x20]
mov byte [esp + 0xc4], 5
call fcn.00418200
test eax, eax
jne 0x412557
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x41253a
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
mov dword [esp + 0x20], edi
push 0x64
call ebp
inc esi
cmp esi, 5
jge 0x412562
mov ecx, ebx
lea edi, [esp + 0x20]
call fcn.00418200
test eax, eax
je 0x412525
mov ebp, dword [esp + 0x1c]
cmp dword [ebx + 0x18], 8
jb 0x4125bb
mov eax, dword [ebx + 4]
jmp 0x4125be
test edi, edi
je 0x41256d
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x7c], 0x10
jb 0x412581
mov eax, dword [esp + 0x68]
push eax
call fcn.0041f860
add esp, 4
cmp dword [esp + 0x98], 8
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
jb 0x412206
mov ecx, dword [esp + 0x84]
push ecx
call fcn.0041f860
add esp, 4
xor al, al
jmp 0x4129d5
lea eax, [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x412670
mov esi, 8
cmp dword [ebx + 0x18], esi
jb 0x4125dc
mov eax, dword [ebx + 4]
jmp 0x4125df
lea eax, [ebx + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x41265c
cmp dword [ebx + 0x18], esi
jb 0x4125f4
mov edx, dword [ebx + 4]
jmp 0x4125f7
lea edx, [ebx + 4]
xor eax, eax
mov word [esp + 0x28], ax
mov eax, edx
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], 0
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x412613
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x2c]
call fcn.00404e10
lea edi, [esp + 0x24]
mov byte [esp + 0xc4], 6
call fcn.00417fb0
mov byte [esp + 0xc4], 5
cmp dword [esp + 0x3c], 8
jb 0x412670
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041f860
add esp, 4
jmp 0x412670
cmp dword [ebx + 0x18], esi
jb 0x412666
mov eax, dword [ebx + 4]
jmp 0x412669
lea eax, [ebx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov edi, dword [ebp]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp]
test edi, edi
je 0x41268e
cmp edi, eax
je 0x412693
call fcn.004204b3
mov ebx, dword [esp + 0x18]
cmp ebx, esi
je 0x412981
test edi, edi
jne 0x4127b8
call fcn.004204b3
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x4126b8
call fcn.004204b3
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x40]
mov edi, dword [ebp + 0x28]
mov ebx, dword [eax]
mov dword [esp + 0x40], edi
jmp 0x4126d0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4127bf
call fcn.004204b3
xor eax, eax
cmp ebp, dword [eax + 0x18]
jne 0x4126ed
call fcn.004204b3
mov esi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x28]
test edi, edi
je 0x4126fb
cmp edi, eax
je 0x412700
call fcn.004204b3
cmp ebx, esi
je 0x412901
test edi, edi
jne 0x4127c6
call fcn.004204b3
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x412721
call fcn.004204b3
lea eax, [esp + 0x9c]
lea esi, [ebx + 0xc]
lea ecx, [esi + 0x1c]
push eax
call fcn.00417bf0
add esp, 4
mov ebp, eax
mov byte [esp + 0xc4], 7
test edi, edi
jne 0x4127cd
call fcn.004204b3
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x41275a
call fcn.004204b3
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.00417bf0
add esp, 4
mov edi, eax
cmp dword [esp + 0x14], 0
mov byte [esp + 0xc4], 8
jne 0x4127d4
call fcn.004204b3
xor eax, eax
mov esi, dword [esp + 0x18]
cmp esi, dword [eax + 0x18]
jne 0x41278f
call fcn.004204b3
lea eax, [esp + 0x24]
push eax
lea ecx, [esi + 0xc]
call fcn.00417bf0
mov ecx, dword [esp + 0x20]
add ecx, 0x20
add esp, 4
cmp dword [ecx + 0x18], 8
jb 0x4127dc
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 0x24]
add ecx, 0x20
jmp 0x4127e3
mov eax, dword [edi]
jmp 0x4126ae
mov eax, dword [eax]
jmp 0x4126e3
mov eax, dword [edi]
jmp 0x412717
mov eax, dword [edi]
jmp 0x412750
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
jmp 0x412781
mov esi, dword [esp + 0x1c]
add esi, 0x24
mov ecx, 8
cmp dword [ebp + 0x18], ecx
jb 0x4127f2
mov edx, dword [ebp + 4]
jmp 0x4127f5
lea edx, [ebp + 4]
cmp dword [edi + 0x18], ecx
jb 0x4127ff
mov ecx, dword [edi + 4]
jmp 0x412802
lea ecx, [edi + 4]
mov edi, 8
cmp dword [eax + 0x18], edi
jb 0x412811
mov eax, dword [eax + 4]
jmp 0x412814
add eax, 4
push esi
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0x3c], edi
jb 0x412831
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041f860
add esp, 4
xor ebp, ebp
xor edx, edx
mov esi, 7
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebp
mov word [esp + 0x28], dx
cmp dword [esp + 0x60], edi
jb 0x41285a
mov eax, dword [esp + 0x4c]
push eax
call fcn.0041f860
add esp, 4
xor ecx, ecx
mov byte [esp + 0xc4], 5
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebp
mov word [esp + 0x4c], cx
cmp dword [esp + 0xb4], edi
jb 0x41288a
mov edx, dword [esp + 0xa0]
push edx
call fcn.0041f860
add esp, 4
cmp dword [esp + 0x40], ebp
jne 0x412895
call fcn.004204b3
cmp byte [ebx + 0x45], 0
je 0x4128ad
call fcn.004204b3
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
jmp 0x4126d0
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0x45], 0
jne 0x4128d9
mov eax, dword [ecx]
cmp byte [eax + 0x45], 0
jne 0x4128ca
mov edi, edi
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x45], 0
je 0x4128c0
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
mov ebx, ecx
jmp 0x4126d0
mov eax, dword [ebx + 4]
cmp byte [eax + 0x45], 0
jne 0x4128f2
cmp ebx, dword [eax + 8]
jne 0x4128f2
mov ebx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x45], 0
je 0x4128e2
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
mov ebx, eax
jmp 0x4126d0
cmp dword [esp + 0x14], 0
jne 0x41290d
call fcn.004204b3
cmp byte [ebp + 0x49], 0
je 0x412925
call fcn.004204b3
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
jmp 0x412680
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x49], 0
jne 0x412951
mov eax, dword [ecx]
cmp byte [eax + 0x49], 0
jne 0x412940
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x49], 0
je 0x412936
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x412680
mov eax, dword [ebp + 4]
cmp byte [eax + 0x49], 0
jne 0x412970
lea ebx, [ebx]
cmp ebp, dword [eax + 8]
jne 0x412970
mov ebp, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x49], 0
je 0x412960
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x412680
mov eax, dword [esp + 0x20]
test eax, eax
je 0x412990
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x7c], 0x10
jb 0x4129a4
mov eax, dword [esp + 0x68]
push eax
call fcn.0041f860
add esp, 4
cmp dword [esp + 0x98], 8
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
jb 0x4129d3
mov ecx, dword [esp + 0x84]
push ecx
call fcn.0041f860
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.0041f86b
add esp, 0xb4
ret 4