Function at 0x45226e
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff44c
push ebx
push esi
push edi
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0x10]
mov ebx, 0x4a64f8
lea eax, [ebx + 0x1f]
call fcn.0046c4e4
mov dword [ebp - 0xc], eax
cmp edi, 0xffffffff
jne 0x4522f4
mov edi, dword [ebp - 0xc]
xor esi, esi
cmp edi, esi
jle 0x4522f4
push esi
lea eax, [ebx + 0x1f]
push eax
lea edx, [ebp - 0x2b0]
push edx
call fcn.00497eb8
add esp, 0xc
lea ecx, [ebx + 0xb]
lea edx, [ebx + 0x2b]
lea eax, [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0x260]
push pe_nt_image_headers32
call fcn.0046c1a4
push dword [ebp + 0xc]
lea eax, [ebp - 0x260]
push eax
call fcn.00494f0c
add esp, 8
test eax, eax
jne 0x4522ef
mov edi, esi
jmp 0x4522f4
inc esi
cmp edi, esi
jg 0x4522a4
cmp dword [ebp + 8], 0
je 0x45230d
push 0x4f
lea eax, [ebp - 0x60]
push dword [ebp + 8]
push eax
call fcn.00495138
add esp, 0xc
jmp 0x45231e
push edi
lea edx, [ebx + 0x1f]
push edx
lea ecx, [ebp - 0x60]
push ecx
call fcn.00497eb8
add esp, 0xc
lea edx, [ebx + 0x2b]
lea eax, [ebp - 0x60]
mov ecx, dword [ebp + 0xc]
call fcn.0046bfc8
cmp byte [ebp - 6], 0
je 0x452363
xor esi, esi
cmp esi, dword [ebp - 0xc]
jge 0x452363
push esi
lea eax, [ebx + 0x1f]
push eax
lea edx, [ebp - 0x300]
push edx
call fcn.00497eb8
add esp, 0xc
lea edx, [ebx + 0x30]
lea eax, [ebp - 0x300]
xor ecx, ecx
call fcn.0046c0d0
inc esi
cmp esi, dword [ebp - 0xc]
jl 0x452339
xor ecx, ecx
mov cl, byte [ebp - 6]
lea edx, [ebx + 0x30]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x38]
lea eax, [ebp - 0x60]
call fcn.0046c480
lea edx, [ebx + 0x40]
lea eax, [ebp - 0x60]
call fcn.0046c480
lea edx, [ebx + 0x4a]
lea eax, [ebp - 0x60]
xor ecx, ecx
call fcn.0046c0d0
cmp dword [ebp - 4], 0
je 0x452474
push 0x6b
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
mov ecx, eax
lea edx, [ebx + 0x4a]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
push 0x66
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
test eax, eax
je 0x4523ec
push 0x400
lea eax, [ebp - 0x700]
push eax
push 0x67
push dword [ebp - 4]
call sub.USER32.DLL_GetDlgItemTextA
lea ecx, [ebp - 0x700]
lea edx, [ebx + 0x38]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
push 0x68
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
test eax, eax
je 0x452474
push 0x69
push dword [ebp - 4]
call sub.USER32.DLL_GetDlgItem
mov edi, eax
push edi
call sub.USER32.DLL_GetWindowTextLengthA
add eax, 0xa
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
call fcn.00493734
pop ecx
mov esi, eax
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov eax, edi
call fcn.0046e59c
lea edx, [ebx + 0x40]
lea eax, [ebp - 0x60]
mov ecx, esi
call fcn.0046c014
push esi
call fcn.0049356c
cmp byte [ebp - 5], 0
pop ecx
je 0x452452
lea eax, [ebx + 0x6f]
call fcn.0046c63c
test al, al
jne 0x452474
lea edx, [ebp - 0xb00]
push edx
push 0x400
call sub.KERNEL32.DLL_GetCurrentDirectoryA
lea ecx, [ebp - 0xb00]
lea edx, [ebx + 0x6f]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
cmp byte [ebp - 5], 0
jne 0x4529ea
mov eax, dword [0x4bbab8]
call fcn.00450cb0
mov esi, eax
mov eax, esi
call fcn.0040eda0
mov ecx, eax
lea edx, [ebx + 0x76]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
push esi
call fcn.0049356c
pop ecx
mov eax, dword [0x4bbac4]
call fcn.00450cb0
mov esi, eax
mov eax, esi
call fcn.0040eda0
mov ecx, eax
lea edx, [ebx + 0x80]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
push esi
call fcn.0049356c
pop ecx
cmp dword [0x4b9a6c], 0
sete cl
and ecx, 1
lea edx, [ebx + 0x118]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
mov ecx, 0x4b73d4
lea edx, [ebx + 0x11f]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
lea edx, [ebx + 0x129]
lea eax, [ebp - 0x60]
call fcn.0046c480
mov ecx, 0x4b9a71
lea edx, [ebx + 0x12d]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
mov ecx, 0x4b9e71
lea edx, [ebx + 0x141]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
mov ecx, 0x4b83d4
lea edx, [ebx + 0x149]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
cmp byte [0x4b83d4], 0
je 0x452552
lea esi, [ebx + 0xb]
jmp 0x45255e
mov eax, dword [0x4c7d64]
call fcn.0040eda0
mov esi, eax
push esi
call fcn.00494f88
pop ecx
inc eax
push eax
lea edx, [ebx + 0x151]
lea eax, [ebp - 0x60]
mov ecx, esi
call fcn.0046c110
cmp dword [0x4b9090], 0x80000000
jne 0x4525a4
cmp dword [0x4b908c], 0
jne 0x4525a4
lea eax, [ebx + 0x371]
push eax
lea edx, [ebp - 0xb34]
push edx
call fcn.00494f58
add esp, 8
jmp 0x4525bb
push dword [0x4b9090]
push dword [0x4b908c]
lea eax, [ebp - 0xb34]
call fcn.0040b974
lea ecx, [ebp - 0xb34]
lea edx, [ebx + 0x165]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
xor ecx, ecx
mov cl, byte [0x4b918b]
lea edx, [ebx + 0x178]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9188]
lea edx, [ebx + 0x181]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x18d]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b906c]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9081]
lea edx, [ebx + 0x19a]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9080]
lea edx, [ebx + 0x1a1]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90c1]
lea edx, [ebx + 0x1a7]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90c0]
lea edx, [ebx + 0x1b1]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x1b6]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b9074]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b907e]
lea edx, [ebx + 0x1bc]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b918a]
lea edx, [ebx + 0x1bf]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x1c4]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b9068]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90bd]
lea edx, [ebx + 0x1cd]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b907d]
lea edx, [ebx + 0x1d7]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b907c]
lea edx, [ebx + 0x1e2]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9189]
lea edx, [ebx + 0x1eb]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x1f0]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b9064]
call fcn.0046c0d0
lea edx, [ebx + 0x1f7]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b6fd0]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4ba271]
lea edx, [ebx + 0x23f]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4ba272]
lea edx, [ebx + 0x24a]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9652]
lea edx, [ebx + 0x257]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
push 0x4b8bd5
lea eax, [ebp - 0xbb4]
push eax
call fcn.00494f58
add esp, 8
lea edx, [ebp - 0xbb4]
push edx
call fcn.00494f88
pop ecx
mov edx, eax
inc edx
xor eax, eax
cmp edx, eax
jle 0x4527b8
mov ecx, eax
add cl, 0x49
xor byte [ebp + eax - 0xbb4], cl
inc eax
cmp edx, eax
jg 0x4527a7
push edx
lea ecx, [ebp - 0xbb4]
lea eax, [ebp - 0x60]
lea edx, [ebx + 0x202]
call fcn.0046c110
xor ecx, ecx
mov cl, byte [0x4b8c55]
lea edx, [ebx + 0x20b]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90be]
lea edx, [ebx + 0x21a]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90b0]
lea edx, [ebx + 0x225]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b9114]
lea edx, [ebx + 0x233]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4b90c2]
lea edx, [ebx + 0x260]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x270]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b964c]
call fcn.0046c0d0
mov ecx, 0x4b90c3
lea edx, [ebx + 0x27f]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
lea edx, [ebx + 0x2aa]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c7d6c]
call fcn.0046c0d0
lea edx, [ebx + 0x2b7]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c7d70]
call fcn.0046c0d0
lea edx, [ebx + 0x2c0]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c7d74]
call fcn.0046c0d0
lea edx, [ebx + 0x2ca]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c7d78]
call fcn.0046c0d0
mov eax, 0x4b9120
call fcn.00413a48
mov ecx, eax
lea edx, [ebx + 0x2e0]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
mov eax, 0x4b914c
call fcn.00413a48
mov ecx, eax
lea edx, [ebx + 0x2ef]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
cmp dword [0x4b90a8], 1
sete cl
and ecx, 1
lea edx, [ebx + 0x2fd]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
cmp dword [0x4b90a8], 2
sete cl
and ecx, 1
lea edx, [ebx + 0x30d]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
lea edx, [ebx + 0x31b]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b9654]
call fcn.0046c0d0
lea edx, [ebx + 0x321]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b9658]
call fcn.0046c0d0
lea edx, [ebx + 0x327]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4b965c]
call fcn.0046c0d0
cmp dword [0x4b9084], 3
sete cl
and ecx, 1
lea edx, [ebx + 0x32d]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
cmp dword [0x4b9084], 2
sete cl
and ecx, 1
lea edx, [ebx + 0x336]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
cmp dword [0x4b9084], 5
sete cl
and ecx, 1
lea edx, [ebx + 0x340]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
xor ecx, ecx
mov cl, byte [0x4c7d7e]
lea edx, [ebx + 0x34e]
lea eax, [ebp - 0x60]
call fcn.0046c0d0
mov ecx, 0x4b924c
lea edx, [ebx + 0x35a]
lea eax, [ebp - 0x60]
call fcn.0046bfc8
push 0xc0
mov ecx, 0x4b918c
lea edx, [ebx + 0x365]
lea eax, [ebp - 0x60]
call fcn.0046c110
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc