Function at 0x10037839
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10058884
call fcn.10056ec8
sub esp, 0xf4
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov edi, edx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x3c], edi
mov esi, ecx
je 0x10037f23
cmp byte [ebp + 0xc], 0
je 0x10037f00
lea eax, [ebp + 0x10]
mov dword [ebp - 0x30], edi
xor ebx, ebx
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x14], ebx
jmp 0x10037888
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x38], 0xfffffff8
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 2
jl 0x1003787a
mov byte [ebp + 0x17], bl
cmp byte [ebp + 0x17], bl
je 0x100378b2
push 0x61b1
push 1
push 0x7cd1
push ebx
mov edx, 0x5427
mov cl, 1
call fcn.10038af3
add esp, 0x10
mov dword [ebp - 0x38], 0x11
jmp 0x100378e5
mov dword [ebp + 0x14], 0xaa9ac70c
mov dword [ebp + 0x14], ebx
jmp 0x100378dc
push ecx
push ecx
lea eax, [ebp - 0x1a]
mov byte [ebp - 0x1a], bl
push eax
push ecx
call fcn.10039002
add esp, 0x10
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x1a
jge 0x100378c7
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 4
jge 0x100378bb
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], ebx
mov word [ebp - 0xa0], ax
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xa0]
push dword [ebp + 0x10]
call fcn.100174d3
mov dword [ebp + 0x14], 1
mov dword [ebp + 0x14], 0x1d
jmp 0x10037934
cmp dword [ebp + 0x14], ebx
jne 0x1003793a
mov cl, 1
call fcn.1003769e
dec dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x13
jne 0x10037925
mov eax, dword [0x102dd08c]
test al, 1
jne 0x10037963
or eax, 1
mov dword [0x102dd08c], eax
push 0x1e4e
mov byte [ebp - 4], 1
call fcn.1002803a
pop ecx
mov word [0x102dbcdc], ax
mov byte [ebp - 4], bl
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x54]
push 1
call fcn.10011bd7
mov byte [ebp - 4], 2
mov dword [ebp - 0x40], 0x82ecc90c
mov dword [ebp - 0x20], ebx
jmp 0x1003798e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x7c], 4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10037980
push 0x4220
lea eax, [ebp - 0x20]
mov ecx, 0xd1a
push eax
push ebx
push 0x3486
push 0x1640
push 1
push 0x3667
push 1
lea edx, [ebp - 0x54]
call fcn.10039036
add esp, 0x20
mov dword [ebp - 0x14], ebx
jmp 0x10037a84
mov dword [ebp + 0x14], 0xfffffffc
mov dword [ebp - 0x18], 0x98072f25
mov dword [ebp + 0x14], ebx
jmp 0x10037a77
mov dword [ebp - 0x18], 0xfffffff7
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
cmp dword [ebp + 0x14], eax
jle 0x10037a1b
mov eax, dword [ebp - 0x54]
cmp dword [eax], ebx
jne 0x10037a1b
mov eax, ebx
jmp 0x10037a1e
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x18]
imul ecx, eax
mov eax, dword [ebp - 0x54]
sub ecx, dword [eax]
mov eax, dword [ebp + 0x14]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x14]
cmp ecx, 0x339b8842
jne 0x10037a49
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
test eax, eax
mov eax, dword [ebp - 0x54]
setle cl
xor edx, edx
cmp ecx, dword [eax]
setle dl
xor eax, eax
cmp edx, 0xcb2d
setge al
mov dword [ebp - 0x18], eax
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 2
jle 0x100379df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x100379c9
push ebx
lea eax, [ebp - 0x54]
push eax
push 0x2d94
lea edx, [ebp - 0x40]
call fcn.10037604
add esp, 0xc
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x54]
call fcn.10011c39
mov eax, dword [0x102dd08c]
test al, 2
jne 0x10037ad7
or eax, 2
mov dword [0x102dd08c], eax
push 0x5715
mov byte [ebp - 4], 3
call fcn.1002803a
pop ecx
mov word [0x102dbcf0], ax
mov byte [ebp - 4], bl
mov dword [ebp - 0x68], 1
lea ecx, [ebp - 0x88]
push 3
call fcn.10011bd7
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 4
call fcn.10011bd7
mov byte [ebp - 4], 5
mov dword [ebp + 0x14], 0x4b08
cmp dword [ebp + 0x14], 0x4de9
jle 0x10037b50
call dword [sym.imp.USER32.dll_WaitMessage]
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov eax, esi
shl eax, cl
mov ecx, 0x10072d38
xor eax, edi
cdq
push edx
push eax
call fcn.10011982
inc ebx
cmp ebx, 0x78fd
jl 0x10037b1d
inc esi
push 0
pop ebx
cmp esi, 0x1d4a
jl 0x10037b1a
inc edi
cmp edi, 0x1d2d
jl 0x10037b18
mov dword [ebp - 0x58], 1
mov byte [ebp - 4], 6
cmp dword [ebp + 0x14], 0x49b6
jge 0x10037b97
mov edx, str.fqxp_lag_gqayugs_iheiaf_muklmwiad_gctnivk_awqyksn_byjecnvbb
mov ecx, 0x10072d38
call fcn.10016228
jmp 0x10037b97
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 5
push eax
push ecx
push ecx
mov dword [ebp - 0x6c], 0xf3b8c105
lea ecx, [ebp - 0x24]
call fcn.1003915a
xor edx, edx
mov dword [ebp - 0x24], ebx
add esp, 0xc
inc edx
jmp 0x10037bd4
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0x735e4b78
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x10037bc1
lea eax, [ebp - 0x88]
push eax
push 0x1428
lea eax, [ebp - 0x6c]
push eax
push 0xbcb
lea eax, [ebp - 0x58]
push eax
push edx
push 0x27fc
lea eax, [ebp - 0x68]
push eax
push 0x30f1
push ebx
push edx
mov edx, 0x1226
lea ecx, [ebp - 0xac]
call fcn.10038443
add esp, 0x2c
lea ecx, [ebp - 0xac]
call fcn.10011c39
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], bl
call fcn.10011c39
mov dword [ebp - 0x18], 0x1838
cmp dword [ebp - 0x18], 0x1986
jle 0x10037cc3
push 0x100c
push 0x1625
call dword [sym.imp.USER32.dll_SetCaretPos]
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov dword [ebp + 0x14], ebx
mov ecx, esi
mov dword [ebp - 0x30], edi
mov esi, edi
mov dword [ebp - 0x2c], ebx
sar esi, cl
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0xe8]
or eax, esi
cdq
push edx
push eax
call fcn.10001ba3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10037c87
mov eax, dword [eax]
push eax
call fcn.100410e1
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xe8]
call fcn.100122d9
inc edi
cmp edi, 0x4173
jl 0x10037c6b
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp - 0x14]
inc esi
mov dword [ebp + 0x14], esi
cmp esi, 0x6e39
jl 0x10037c5d
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x3ca8
jl 0x10037c58
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x28]
cmp esi, dword [eax]
jae 0x10037e4d
call fcn.10036e27
push 0x24
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x70], edx
mov dword [ebp + 0x14], 0x74f0
cmp dword [ebp + 0x14], 0x7793
jle 0x10037d3b
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [ebp - 0x100]
push edx
push eax
call fcn.10001ba3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10037d11
mov eax, dword [eax]
push eax
call fcn.100410e1
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x100]
call fcn.100122d9
inc edi
cmp edi, 0x4879
jl 0x10037cf6
inc esi
cmp esi, 0x1bd9
jl 0x10037cf4
mov esi, dword [ebp - 0x14]
push dword [ebp + 0x14]
movdqa xmm0, xmmword [0x10065f10]
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x64], ebx
push eax
push ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x60], ebx
movdqu xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0x5c], ebx
call fcn.1001720b
cmp dword [ebp + 0x14], 0x7392
jge 0x10037d82
push str.tdlhgvs_bhboigy_ppvktug_agi_yashuxkp_pcbnkug_heptx_vyb_ybugdpzwq_myhoetuwr
call fcn.100410e1
pop ecx
mov dword [ebp - 4], 8
mov dword [ebp - 0x14], 0xfffffffa
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x10037df9
mov dword [ebp + 0x14], ebx
jmp 0x10037daf
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x48], 0xa4f402e3
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 2
jl 0x10037da1
push 1
lea eax, [ebp - 0x1b]
mov byte [ebp - 0x1b], bl
push 0x6d43
push eax
mov edx, 0x54c7
call fcn.10037604
add esp, 0xc
mov dword [ebp - 0x48], ebx
jmp 0x10037dee
mov byte [ebp - 0x19], bl
lea edx, [ebp - 0x19]
call fcn.10038067
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
cmp dword [eax + ecx*4], ebx
jne 0x10037df4
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 3
jle 0x10037dd5
dec dword [ebp - 0x14]
jns 0x10037d9c
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.10011c39
push 0x617d
push 0x102dbcdc
push ebx
push 0x6128
lea eax, [ebp - 0x70]
mov edx, 0x7c5b
push eax
push 0x5454
lea eax, [ebp - 0xa0]
mov cl, 1
push eax
push 0x102dbcf0
push 0x397b
push 1
push 0x4982
call fcn.10038964
add esp, 0x2c
inc esi
mov dword [ebp - 0x14], esi
jmp 0x10037cc8
cmp dword [ebp - 0x18], 0x1728
jge 0x10037e61
push str.rsuxtxvh_cxf_ezxccyrmn_gxrmiyq_bqv_qzdkwlt_klcte_unrzwr_xuq
call fcn.100410e1
pop ecx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x28], 0xb01d
push 3
call fcn.10011bd7
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp + 0x14], 0x395e2de4
mov dword [ebp + 0x14], ebx
jmp 0x10037e9c
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0xd0], 0x94543beb
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 2
jl 0x10037e8b
mov dword [ebp + 0x14], ebx
jmp 0x10037eba
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], 0x2a3cc92e
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 3
jl 0x10037ea7
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0xb8]
mov eax, dword [ebp - 0x2c]
mov dword [ebp + 0x14], 0x9737e0d1
call fcn.10011c39
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0xa0]
cmp edi, eax
je 0x10037ef0
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
call fcn.10012477
push ebx
push 1
lea ecx, [ebp - 0xa0]
call fcn.100125a7
jmp 0x10037f59
mov byte [ebp + 0x17], 0
cmp byte [ebp + 0x17], 0
je 0x10037f59
push 0x9f6
push 0x1002
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetClassLongA]
jmp 0x10037f59
cmp byte [ebp + 8], 0
je 0x10037f42
mov edx, dword [ebp + 0x18]
xor ebx, ebx
mov dword [edx], ebx
jmp 0x10037f3b
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], ebx
inc dword [edx]
cmp dword [edx], 4
jl 0x10037f32
jmp 0x10037f59
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x10037f59
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret