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

Disassembly:
mov eax, 0x10062eec
call fcn.100628b0
sub esp, 0x84
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x28], esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x100042a3
mov dword [ebp - 0x20], 0x77c1
xor ebx, ebx
cmp dword [ebp - 0x20], 0x7aa7
jle 0x10003f17
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], 0x1cd4
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, 0x1007f2b8
cdq
push edx
push eax
call fcn.1000473c
add ebx, esi
dec dword [ebp - 0x24]
jne 0x10003ee5
inc esi
push 0
pop ebx
cmp esi, 0x659e
jl 0x10003edb
inc edi
cmp edi, 0x2902
jl 0x10003ed9
mov esi, dword [ebp - 0x28]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x7683
jge 0x10003f32
mov edx, str.wmexxzhj_rjdrqmtx_oskccklow_gkz_cypr_wiw_mvfrp_fey_sux_ymtxnpv_fup_bbzqdej
mov ecx, 0x1007f2b8
call fcn.1000877a
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x14], 0
je 0x100041db
push 5
pop ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x48], 0xfd9e2a8d
mov dword [ebp - 0x44], 0x418a5273
mov dword [ebp - 0x3c], 0x710dd01
mov dword [ebp - 0x34], 0xc9a130df
mov dword [ebp - 0x24], 0xffff
mov dword [ebp - 0x2c], 0x18cb
cmp dword [ebp - 0x2c], 0x11fd
jge 0x10004055
lea eax, [ebp - 0x1c]
push eax
push ecx
lea eax, [ebp - 0x30]
mov ecx, 0x1007f370
push eax
call fcn.100045ea
pop ecx
mov ecx, eax
call fcn.100045ea
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
test edx, edx
jne 0x10003fb1
test ecx, ecx
je 0x10004052
lea eax, [ecx + edx]
mov dword [ebp - 0x20], 1
shr eax, 1
mov esi, ecx
cmp ecx, eax
mov dword [ebp - 0x18], ebx
mov eax, ebx
cmova esi, edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x1000400e
push dword [ebp - 0x18]
sub ecx, dword [ebp - 0x2c]
lea edi, [eax + 1]
push dword [ebp - 0x20]
add ecx, edx
push ebx
push ecx
call fcn.1004f380
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.100628d0
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, edi
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x3c]
jb 0x10003fd3
push dword [ebp - 0x18]
mov ecx, 0x1007f2b8
push dword [ebp - 0x20]
call fcn.1000473c
push eax
call fcn.10008951
pop ecx
jmp 0x10003f84
push 5
pop ecx
mov dword [ebp - 0x18], ebx
jmp 0x10004068
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x60], 0xb8faaaeb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1000405a
mov dword [ebp - 0x18], ebx
jmp 0x10004081
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], 0x80c3414b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10004073
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x34]
neg eax
push 7
sbb eax, eax
inc eax
cmp ecx, eax
mov eax, dword [ebp - 0x34]
pop esi
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
mov eax, dword [ebp - 0x40]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x44]
setg cl
xor edx, edx
cmp ecx, eax
setne dl
sub edx, esi
neg edx
sbb edx, edx
xor eax, eax
inc edx
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x24]
cmp edx, 0xdb62
setle al
sub ecx, eax
mov eax, dword [ebp - 0x48]
neg ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], ebx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0x4d71b36c
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x48], ecx
mov word [ebp - 0x78], ax
inc eax
mov dword [ebp - 4], 2
push eax
mov dword [ebp - 0x4c], 0xfffffffa
lea ecx, [ebp - 0x11]
push 0x4097
mov dword [ebp - 0x50], ebx
mov dl, al
push ecx
mov dword [ebp - 0x54], 0x5a519d81
mov cl, al
mov dword [ebp - 0x48], eax
push 0x531d
mov byte [ebp - 0x11], bl
call fcn.10003c3e
lea eax, [ebp - 0x4c]
mov cl, 1
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.10003e0a
add esp, 0x18
lea eax, [ebp + 0x20]
lea edx, [ebp - 0x78]
push 1
sub esp, 0xc
push eax
push 0x4363
call fcn.1000439e
mov eax, dword [0x10115e38]
add esp, 0x1c
test al, 1
jne 0x10004195
or eax, 1
mov dword [0x10115e38], eax
push 0xa4ab
mov byte [ebp - 4], 3
call fcn.1002f442
pop ecx
mov word [0x10114aac], ax
mov byte [ebp - 4], 2
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x100041b8
push 1
push 0x10114aac
push ecx
lea eax, [ebp - 0x78]
mov ecx, 0x2d73
push eax
call fcn.10003a7b
add esp, 0x10
dec esi
jne 0x1000419c
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x78]
cmp ecx, eax
je 0x100041cb
push 0xffffffffffffffff
push ebx
push eax
call fcn.10004f53
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.10005081
jmp 0x1000438d
mov dword [ebp - 0x20], 0x56f8
cmp dword [ebp - 0x20], 0x57cd
jle 0x1000426a
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x2c], 0x6ff2
mov edi, ebx
mov dword [ebp - 0x34], 0x1aa4
mov eax, edi
lea ecx, [ebp - 0x90]
cdq
push edx
push eax
call fcn.10001a8a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000421a
mov eax, dword [eax]
push eax
call fcn.1004b583
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x90]
call fcn.10004d7a
add edi, esi
dec dword [ebp - 0x34]
jne 0x10004200
mov edi, dword [ebp - 0x24]
add esi, edi
dec dword [ebp - 0x2c]
jne 0x100041f7
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x7336
jl 0x100041ee
push ebx
push 0x1898
push 0x112a
push 0x1765
push 0x195a
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov esi, dword [ebp - 0x28]
mov dword [esi], ebx
cmp dword [esi], 1
jge 0x10004286
mov edx, dword [ebp + 0x18]
mov ecx, dword [esi]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0x3ac2
inc dword [esi]
cmp dword [esi], 1
jl 0x10004274
cmp dword [ebp - 0x20], 0x5696
jge 0x1000438d
push str.uqimym_okkeytnxb_pnrvx_fxyonf_qpgus_qiujy_sxnqgzp_lgxyhvxwz_ttpxh_tnmz
call fcn.1004b583
pop ecx
jmp 0x1000438d
mov dword [ebp - 0x2c], 0x3b61
cmp dword [ebp - 0x2c], 0x3d34
jle 0x10004322
push 0x133
push 0x266c
push 0x1207
call dword [sym.imp.GDI32.dll_GetPixel]
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x38], 0x262a
mov edi, ebx
mov esi, ebx
mov ebx, dword [ebp - 0x24]
mov eax, edi
mov ecx, 0x1007f2b8
cdq
idiv esi
xor edx, ebx
mov eax, edx
cdq
push edx
push eax
call fcn.1000473c
inc esi
cmp esi, 0x7a61
jl 0x100042de
inc edi
push 0
pop ebx
cmp edi, 0x359c
jl 0x100042d9
mov esi, dword [ebp - 0x34]
add dword [ebp - 0x24], esi
dec dword [ebp - 0x38]
jne 0x100042d7
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x1b1c
jl 0x100042cd
jmp 0x10004324
xor ebx, ebx
mov dword [ebp - 4], 6
cmp dword [ebp - 0x2c], 0x386d
jge 0x10004361
mov edx, str.dleloemny_jktepzrdq_vrmcnkl_nvo_hshjqgnbs_dpfafk_yucwxt_ecemfj_jlub_ockwyb_tdpop_gkrlnu_dfnn_kkbgzvowf
mov ecx, 0x1007f2b8
call fcn.1000877a
jmp 0x10004361
cmp byte [ebp + 0x10], 0
je 0x1000437d
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x1000438d
push 0x14c7
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp 0x1000438d
push ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 0xc]
push eax
call fcn.1000523d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret