Function at 0x10022350
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x10066a58
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
mov eax, dword [0x1007c060]
xor eax, esp
mov dword [esp + 0x138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1007c060]
xor eax, esp
push eax
lea eax, [esp + 0x150]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov edi, ecx
mov ebp, 0xf
mov dword [esp + 0x20], edi
mov esi, edx
mov dword [esp + 0x148], ebp
mov dword [esp + 0x144], ebx
mov byte [esp + 0x134], bl
mov dword [esp + 0x158], 1
mov dword [esp + 0x110], ebp
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x134]
mov byte [esp + 0x15c], 2
call fcn.1002464b
test eax, eax
jne 0x100224e8
and dword [esp + 0x4c], 0xfffffe00
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x158], 4
mov eax, dword [esp + 0x134]
mov ebp, 0x10
cmp dword [esp + 0x148], ebp
jae 0x1002242f
lea eax, [esp + 0x134]
lea ecx, [esp + 0x44]
push ecx
push eax
lea edx, [esp + 0x70]
push 1
push edx
call fcn.10024311
push edi
mov edx, eax
mov byte [esp + 0x16c], 5
call fcn.1002457e
add esp, 0x14
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x80], ebp
jb 0x10022472
mov eax, dword [esp + 0x6c]
push eax
call fcn.1004a7e9
add esp, 4
lea esi, [esp + 0x44]
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
mov byte [esp + 0x158], 2
call fcn.1003ac21
cmp dword [esp + 0x110], ebp
jb 0x100224af
mov ecx, dword [esp + 0xfc]
push ecx
call fcn.1004a7e9
add esp, 4
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
cmp dword [esp + 0x148], ebp
jb 0x100224e1
mov edx, dword [esp + 0x134]
push edx
call fcn.1004a7e9
add esp, 4
mov eax, edi
jmp 0x10022aad
and dword [esp + 0x94], 0xfffffe00
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x158], 7
mov eax, esi
mov dword [esp + 0x80], ebp
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10022524
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x70]
call fcn.10004c30
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x15c], 8
push ecx
mov dword [esp + 0x24], 2
call fcn.1000aac0
add esp, 8
test al, al
je 0x1002256f
cmp byte [esp + 0x94], 7
mov byte [esp + 0x1b], bl
je 0x10022574
mov byte [esp + 0x1b], 1
mov dword [esp + 0x158], 7
mov ebp, 0x10
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x80], ebp
jb 0x1002259e
mov edx, dword [esp + 0x6c]
push edx
call fcn.1004a7e9
add esp, 4
cmp byte [esp + 0x1b], bl
je 0x10022699
and dword [esp + 0x4c], 0xfffffe00
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
lea eax, [esp + 0x44]
push eax
push str.invalid_request
lea ecx, [esp + 0x70]
push 2
push ecx
mov byte [esp + 0x168], 0xa
call fcn.10024311
push edi
mov edx, eax
mov byte [esp + 0x16c], 0xb
call fcn.1002457e
add esp, 0x14
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x80], ebp
jb 0x1002260b
mov edx, dword [esp + 0x6c]
push edx
call fcn.1004a7e9
add esp, 4
lea esi, [esp + 0x44]
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
mov byte [esp + 0x158], 7
call fcn.1003ac21
lea esi, [esp + 0x8c]
mov byte [esp + 0x158], 2
call fcn.1003ac21
cmp dword [esp + 0x110], ebp
jb 0x1002265c
mov eax, dword [esp + 0xfc]
push eax
call fcn.1004a7e9
add esp, 4
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
cmp dword [esp + 0x148], ebp
jb 0x100224e1
mov ecx, dword [esp + 0x134]
push ecx
call fcn.1004a7e9
add esp, 4
mov eax, edi
jmp 0x10022aad
push 6
mov esi, 0xf
push str.action
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
call fcn.10004c30
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xa0], esp
mov byte [esp + 0x174], 0xc
push ebx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x1006a9de
mov byte [ecx + 4], bl
call fcn.10004c30
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x44]
lea edi, [esp + 0xac]
call fcn.1000b860
add esp, 0x20
mov byte [esp + 0x158], 0xe
cmp dword [esp + 0x3c], ebp
jb 0x10022718
mov eax, dword [esp + 0x28]
push eax
call fcn.1004a7e9
add esp, 4
push 4
push str.path
lea ecx, [esp + 0x70]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
call fcn.10004c30
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xa0], esp
mov byte [esp + 0x174], 0xf
push ebx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x1006a9de
mov byte [ecx + 4], bl
call fcn.10004c30
lea ecx, [esp + 0xdc]
push ecx
lea ecx, [esp + 0x88]
lea edi, [esp + 0xac]
call fcn.1000b860
push eax
lea edx, [esp + 0x100]
push edx
mov byte [esp + 0x180], 0x10
call fcn.10001430
add esp, 0x28
cmp dword [esp + 0xd8], ebp
jb 0x100227bb
mov eax, dword [esp + 0xc4]
push eax
call fcn.1004a7e9
add esp, 4
mov dword [esp + 0xd8], esi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
mov byte [esp + 0x158], 0x13
cmp dword [esp + 0x80], ebp
jb 0x100227ee
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.1004a7e9
add esp, 4
mov eax, dword [esp + 0xe0]
mov edi, 8
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
cmp dword [esp + 0xf4], edi
jae 0x10022819
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x100228a2
and dword [esp + 0x4c], 0xfffffe00
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
lea edx, [esp + 0x44]
push edx
push str.path_not_found
lea eax, [esp + 0x2c]
push 3
push eax
mov byte [esp + 0x168], 0x15
call fcn.10024311
mov byte [esp + 0x168], 0x16
mov ecx, dword [esp + 0x30]
push ecx
mov edx, eax
call fcn.1002457e
add esp, 0x14
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x3c], ebp
jb 0x10022888
mov edx, dword [esp + 0x28]
push edx
call fcn.1004a7e9
add esp, 4
mov edi, 0xf
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
lea esi, [esp + 0x44]
jmp 0x100229dd
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0xf4], edi
jae 0x100228b9
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov esi, eax
mov dword [esp + 0x84], esi
cmp dword [esp + 0x12c], ebp
jb 0x100228df
mov eax, dword [esp + 0x118]
cmp eax, ebx
je 0x1002294f
jmp 0x100228e6
lea eax, [esp + 0x118]
push eax
push str.encrypt
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10022948
cmp esi, ebx
je 0x10022927
mov eax, dword [esp + 0xe0]
cmp dword [esp + 0xf4], edi
jae 0x10022911
lea eax, [esp + 0xe0]
push ebx
push ebx
push 1
push 0x100354e3
push 1
push eax
call fcn.100252d5
jmp 0x10022b3a
mov ecx, dword [esp + 0xe0]
cmp dword [esp + 0xf4], edi
jae 0x1002293e
lea ecx, [esp + 0xe0]
call fcn.10034f65
jmp 0x10022b3a
mov eax, dword [esp + 0x118]
cmp dword [esp + 0x12c], ebp
jb 0x10022ad5
cmp eax, ebx
jne 0x10022adc
and dword [esp + 0x2c], 0xfffffe00
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x24]
push ecx
push str.invalid_action
lea edx, [esp + 0x4c]
push 0x63
push edx
mov byte [esp + 0x168], 0x18
call fcn.10024311
mov byte [esp + 0x168], 0x19
mov ecx, dword [esp + 0x30]
push ecx
mov edx, eax
call fcn.1002457e
add esp, 0x14
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x5c], ebp
jb 0x100229c8
mov edx, dword [esp + 0x48]
push edx
call fcn.1004a7e9
add esp, 4
mov edi, 0xf
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
lea esi, [esp + 0x24]
mov byte [esp + 0x158], 0x13
call fcn.1003ac21
cmp dword [esp + 0xf4], 8
jb 0x10022a04
mov eax, dword [esp + 0xe0]
push eax
call fcn.1004a7e9
add esp, 4
xor ecx, ecx
mov word [esp + 0xe0], cx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], 7
cmp dword [esp + 0x12c], ebp
jb 0x10022a39
mov edx, dword [esp + 0x118]
push edx
call fcn.1004a7e9
add esp, 4
lea esi, [esp + 0x8c]
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
mov byte [esp + 0x158], 2
call fcn.1003ac21
cmp dword [esp + 0x110], ebp
jb 0x10022a7b
mov eax, dword [esp + 0xfc]
push eax
call fcn.1004a7e9
add esp, 4
mov byte [esp + 0xfc], bl
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], edi
cmp dword [esp + 0x148], ebp
jb 0x10022aa9
mov ecx, dword [esp + 0x134]
push ecx
call fcn.1004a7e9
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x150]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.1004a172
add esp, 0x148
ret
lea eax, [esp + 0x118]
push eax
push str.decrypt
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10022964
mov eax, dword [esp + 0xe0]
cmp esi, ebx
je 0x10022b1e
cmp dword [esp + 0xf4], edi
jae 0x10022b0b
lea eax, [esp + 0xe0]
push ebx
push ebx
push 0x64
push 0x100354e3
push 1
push eax
call fcn.100252d5
jmp 0x10022b3a
cmp dword [esp + 0xf4], edi
jae 0x10022b2e
lea eax, [esp + 0xe0]
push ebx
push 2
push eax
call fcn.100353c7
add esp, 0xc
and dword [esp + 0x4c], 0xfffffe00
mov ebp, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x158], 0x1b
cmp dword [esp + 0x12c], 0x10
jb 0x10022b6f
mov eax, dword [esp + 0x118]
cmp eax, ebx
je 0x10022b8b
jmp 0x10022b76
lea eax, [esp + 0x118]
push eax
push str.encrypt
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov eax, 0x1006c26c
je 0x10022b90
mov eax, 0x1006c27c
lea ecx, [esp + 0x24]
call fcn.10002e30
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x160], 0x1c
call fcn.100014b0
sub esp, 0x10
mov byte [esp + 0x170], 0x1d
mov edx, eax
mov esi, esp
mov dword [esp + 0xa0], esp
call fcn.1003aa51
lea ecx, [esp + 0x5c]
push ecx
mov edx, str.action
mov byte [esp + 0x174], 0x1e
call fcn.1003bb5c
mov edi, eax
mov byte [esp + 0x170], 0x1d
call fcn.1003aca4
lea ecx, [esp + 0xa4]
call fcn.10002e00
lea esi, [esp + 0x24]
mov byte [esp + 0x158], 0x1b
call fcn.10009500
lea edx, [esp + 0xdc]
push edx
lea eax, [esp + 0xa8]
push eax
call fcn.100014b0
sub esp, 0x10
mov byte [esp + 0x170], 0x1f
mov edx, eax
mov esi, esp
mov dword [esp + 0xa0], esp
call fcn.1003aa51
lea ecx, [esp + 0x5c]
push ecx
mov edx, str.file_path
mov byte [esp + 0x174], 0x20
call fcn.1003bb5c
mov edi, eax
mov byte [esp + 0x170], 0x1f
call fcn.1003aca4
lea ecx, [esp + 0xa4]
mov byte [esp + 0x158], 0x1b
call fcn.10002e00
mov eax, 0x1006c2a4
cmp dword [esp + 0x84], ebx
jne 0x10022c8e
mov eax, 0x1006c2ac
lea ecx, [esp + 0x24]
call fcn.10002e30
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x160], 0x21
call fcn.100014b0
sub esp, 0x10
mov byte [esp + 0x170], 0x22
mov edx, eax
mov esi, esp
mov dword [esp + 0xa0], esp
call fcn.1003aa51
lea ecx, [esp + 0x5c]
push ecx
mov edx, str.file_type
mov byte [esp + 0x174], 0x23
call fcn.1003bb5c
mov edi, eax
mov byte [esp + 0x170], 0x22
call fcn.1003aca4
lea ecx, [esp + 0xa4]
call fcn.10002e00
lea esi, [esp + 0x24]
mov byte [esp + 0x158], 0x1b
call fcn.10009500
mov eax, 0x1006bc74
cmp ebp, ebx
jne 0x10022d1d
mov eax, 0x1006c2bc
lea ecx, [esp + 0x24]
call fcn.10002e30
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x160], 0x24
call fcn.100014b0
sub esp, 0x10
mov byte [esp + 0x170], 0x25
mov edx, eax
mov esi, esp
mov dword [esp + 0xa0], esp
call fcn.1003aa51
lea ecx, [esp + 0x5c]
push ecx
mov edx, str.results
mov byte [esp + 0x174], 0x26
call fcn.1003bb5c
mov edi, eax
mov byte [esp + 0x170], 0x25
call fcn.1003aca4
lea ecx, [esp + 0xa4]
call fcn.10002e00
lea esi, [esp + 0x24]
mov byte [esp + 0x158], 0x1b
call fcn.10009500
lea edx, [esp + 0x44]
push edx
mov ecx, str.t_manual_encdec_log
call fcn.10041dd0
and dword [esp + 0x2c], 0xfffffe00
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
cmp ebp, ebx
je 0x10022e81
lea eax, [esp + 0x24]
push eax
push 0x1006c2d8
lea ecx, [esp + 0xac]
push ebx
push ecx
mov byte [esp + 0x168], 0x28
call fcn.10024311
mov byte [esp + 0x168], 0x29
mov edi, dword [esp + 0x30]
push edi
mov edx, eax
call fcn.1002457e
add esp, 0x14
lea ecx, [esp + 0xa4]
mov dword [esp + 0x1c], 1
call fcn.10002e00
lea esi, [esp + 0x24]
mov byte [esp + 0x158], 0x1b
call fcn.1003ac21
lea esi, [esp + 0x44]
mov byte [esp + 0x158], 0x13
call fcn.1003ac21
lea esi, [esp + 0xdc]
call fcn.10009500
lea ecx, [esp + 0x114]
call fcn.10002e00
lea esi, [esp + 0x8c]
mov byte [esp + 0x158], 2
call fcn.1003ac21
lea ecx, [esp + 0xf8]
call fcn.10002e00
lea ecx, [esp + 0x130]
call fcn.10002e00
mov eax, edi
jmp 0x10022aad
lea edx, [esp + 0x24]
push edx
push str.encrypt_decrypt_failed
lea eax, [esp + 0xac]
push 0xa
push eax
mov byte [esp + 0x168], 0x2b
call fcn.10024311
mov byte [esp + 0x168], 0x2c
jmp 0x10022df1