Function at 0x10037cc9
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1006488b
call fcn.100630d8
sub esp, 0x38
cmp byte [ebp + 0x28], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, edx
mov dword [ebp - 0x2c], ecx
je 0x10037d30
cmp byte [ebp + 0x18], 0
je 0x10037d17
lea eax, [ebp + 0x2b]
mov byte [ebp + 0x2b], 0
push eax
push 0x7eff
mov ecx, 0x47f
call fcn.10038a6b
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
xor edi, edi
mov dword [edx], edi
jmp 0x10037d29
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], edi
inc dword [edx]
cmp dword [edx], 4
jl 0x10037d20
jmp 0x10037d06
mov dword [ebp - 0x28], 0x5927
xor edi, edi
cmp dword [ebp - 0x28], 0x5a26
mov ebx, 0x10081078
jle 0x10037da8
mov esi, edi
mov dword [ebp - 0x20], esi
mov eax, edi
mov dword [ebp - 0x18], edi
mov ecx, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], edi
mov edi, eax
sar edi, cl
and edi, esi
mov esi, dword [ebp - 0x24]
mov eax, edi
mov ecx, ebx
xor eax, esi
cdq
push edx
push eax
call fcn.10004aca
inc esi
cmp esi, 0x4943
jl 0x10037d62
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
inc ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
push 0
pop edi
cmp ecx, 0xdf2
jl 0x10037d56
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x34a2
jl 0x10037d51
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x6c46
jl 0x10037d4c
cmp byte [ebp + 8], 0
je 0x10037ea9
mov dword [ebp - 0x24], 0x447e
cmp dword [ebp - 0x24], 0x475e
jle 0x10037e21
mov dword [ebp - 0x18], edi
mov ebx, edi
mov dword [ebp - 0x1c], 0x75e3
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov ebx, 0x266d
mov eax, esi
lea ecx, [ebp - 0x44]
cdq
push edx
push eax
call fcn.10001ab5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10037def
mov eax, dword [eax]
push eax
call fcn.1004c653
pop ecx
push edi
push 1
lea ecx, [ebp - 0x44]
call fcn.100050bb
dec esi
dec ebx
jne 0x10037dd8
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
add ebx, esi
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], ebx
jne 0x10037dd1
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x344a
jl 0x10037dc5
cmp dword [ebp - 0x24], 0x437f
jge 0x10037e35
push str.vtbp_zlex_biqffjz_ylrv
call fcn.1004c653
pop ecx
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx]
cmp dword [eax], edi
jne 0x10037e43
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx]
mov eax, dword [ebx]
mov ecx, dword [ecx]
shl esi, 3
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
add edx, ecx
add edx, esi
mov dword [eax], edx
cmp dword [eax], 1
jne 0x10037e65
mov eax, dword [ebx]
cmp dword [eax], edi
je 0x10037e68
xor edi, edi
inc edi
mov eax, dword [ebx]
xor edx, edx
cmp edi, dword [eax]
mov eax, dword [ebp - 0x2c]
setg dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
mov eax, dword [ebx]
setg cl
mov dword [eax], ecx
mov dword [ebp - 4], 4
cmp dword [ebp - 0x28], 0x5798
jge 0x10037d06
mov edx, str.ntpz_xtva_ycdmlxtl_ruw_uoqc_igfwvgt
mov ecx, 0x10081078
call fcn.10006f4f
jmp 0x10037d06
mov dword [ebp - 0x24], 0x6fb
cmp dword [ebp - 0x24], 0xa43
jle 0x10037ee1
mov esi, edi
mov dword [ebp + 0x28], edi
mov eax, edi
mov ecx, ebx
or eax, esi
cdq
push edx
push eax
call fcn.10004aca
inc edi
cmp edi, 0x11de
jl 0x10037ebe
inc esi
push 0
pop edi
cmp esi, 0x11ef
jl 0x10037ebb
mov ecx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x24], 0x6e0
mov dword [ecx], eax
jge 0x10037e81
mov edx, str.jeheqyke_neo_eumv_keah
mov ecx, ebx
call fcn.10006f4f
jmp 0x10037e81