Function at 0x437620
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp + 8], 0x23222150
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x43767e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x98815e88
xor eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0x58
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x437650
mov eax, dword [esp + 8]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [esp + 0x2c], 0
sete cl
jmp dword [ecx*4 + 0x442758]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov dword [esp + 4], 0
mov esi, dword [0x442794]
mov edi, dword [edx]
xor eax, eax
cmp edi, edx
setne al
mov dword [esp + 0x10], edx
jmp dword [eax*4 + 0x442760]
mov ebx, dword [edi + 0x30]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x442778]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
jbe 0x44279e
add byte [esi + 0x77], bh
inc ebx
add byte [ebp - 0x1fffbc89], al
jbe 0x4427aa
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, ah
jbe 0x4427b6
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x77], dh
inc ebx
add cl, dh
jbe 0x4427c2
add byte [eax + 0x77], dh
inc ebx
add al, al
jbe 0x4427ca
add byte [eax + 0x77], dh
inc ebx
add byte [eax + 0x77], dh
inc ebx
add byte [eax + 0x77], dh
inc ebx
add byte [edx + 0x77], dh
inc ebx
add byte [ebp - 0x2fffbc89], al
jbe 0x4427e2
inc ebx
add byte [edx], ah
js 0x4427e6
add byte [ebx], dl
js 0x4427ea
add byte [eax], ah
js 0x4427ee
inc ebx
add byte [eax], ah
js 0x4427f2
add byte [edx], ah
js 0x4427f6
add byte [eax], ah
js 0x4427fa
inc ebx
add byte [esi], bh
jns 0x4427fe
add byte [esi + 0x20004378], ch
jns 0x442806
inc ebx
add byte [ecx + edi*2], ch
inc ebx
add byte [ebx + 0x3e004378], bl
inc ebx
add byte [esi], bh
jns 0x442812
add byte [ecx + 0x52004378], ch
jns 0x44281a
add bl, dl
jns 0x44281e
add bl, ch
jns 0x442822
add byte [eax], dl
jp 0x442826
inc ebx
add byte [edx + edi*2], bh
inc ebx
add byte [eax], dl
jp 0x44282e
inc ebx
add byte [eax], dl
jp 0x442832
inc ebx
add byte [eax], dl
jp 0x442836
inc ebx
add byte [edi + 0x7a], dl
inc ebx
add byte [eax], ah
jp 0x44283e
inc ebx
add byte [ebx + 0x7a], cl
inc ebx
add byte [edi + 0x7a], dl
inc ebx
add byte [edx + edi*2], ch
inc ebx
add bl, ah
jp 0x44284e
add byte [eax], dl
jnp 0x442852
add byte [eax], dl
jnp 0x442856
inc ebx
add byte [eax], dl
jnp 0x44285a
add byte [esi], dl
jnp 0x44285e
inc ebx
add byte [eax], dl
jnp 0x442862
inc ebx
add byte [ebx + edi*2], bl
inc ebx
add byte [eax + 0x7b], al
inc ebx
add byte [eax + 0x7b], al
inc ebx
add byte [eax + 0x7b], al
inc ebx
add byte [edx + 0x7b], al
inc ebx
add byte [eax + 0x7b], al
inc ebx
add byte [eax + 0x7b], dl
inc ebx
add byte [eax + 0x7b], dl
inc ebx
add byte [edx + 0x7b], dl
inc ebx
add byte [eax + 0x7b], dl
inc ebx
add byte [edx + 0x7b], ah
inc ebx
add byte [ebx + edi*2], ah
inc ebx
add byte [ebx + edi*2], bl
inc ebx
add byte [eax], dh
jnp 0x44289a
inc ebx
add bh, ch
jnp 0x44289e
inc ebx
add bl, dl
jle 0x4428a2
inc ebx
add byte [esp + edi*2 + 0x43], ah
inc ebx
add bl, dl
jle 0x4428aa
add byte [eax - 0x2cffbc84], dl
jle 0x4428b2
add byte [eax - 0x6fffbc84], dl
jl 0x4428ba
add byte [esi - 0x6fffbc84], dl
jl 0x4428c2
add dh, al
jle 0x4428c6
add al, ah
jl 0x4428ca
add byte [esi], bl
jle 0x4428ce
add byte [ecx], al
jle 0x4428d2
add byte [ebx + 0x4500437e], dh
jle 0x4428da
add byte [ebx - 0x3fffbc82], dh
inc ebx
add al, al
jle 0x4428e2
inc ebx
add al, al
jle 0x4428e6
inc ebx
add al, al
jle 0x4428ea
add dh, al
jle 0x4428ee
inc ebx
add al, al
jle 0x4428f2
add bl, dl
jle 0x4428f6
inc ebx
add cl, dl
jle 0x4428fa
add byte [edx + 0x7f], dl
inc ebx
add byte [ebp - 0x3affbc7f], bh
jg 0x442906
inc ebx
add byte [ebp + 0x1004381], bh
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ch, al
jg 0x442916
add byte [eax], al
add dword [eax], eax
add byte [eax], al
lds edi, [edi + 0x43]
inc ebx
add byte [ecx], al
add byte [eax], al
add dl, ch
jg 0x44291e
inc ebx
add byte [ebp + 0x20004381], bh
add byte [ebx], 0xbd
add dword [ebx], 0x4381bd
xor byte [eax - 0x7ea0ffbd], al
inc ebx
add byte [ebp - 0x42ffbc7f], bh
add dword [ebx], 0x438030
pop edi
inc ebx
add byte [ebp + 0x30004381], bh
inc ebx
add byte [eax], dh
add byte [ebx], 0x5f
inc ebx
add byte [edi - 0x7f], bl
add dword [ebx], 0x438180
add dword [eax], eax
inc ebx
add byte [eax + 0x1004381], al
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi - 0x7f], bl
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x5fffbc7f], ah
add byte [eax], al
add dword [eax], eax
add byte [eax], al
pop edi
add dword [ebx], 1
add byte [eax], al
mov al, byte [0xa0004381]
add dword [ebx], 0x4381a2
mov al, byte [0xbd004381]
add dword [ebx], 0x4381a9
push ebx
add dword [ebx], 4
add dword [ebx], 0xffffffa2
add dword [ebx], 0x53
inc ebx
add byte [ebp - 0x56ffbc7f], bh
add dword [ebx], 0x438353
add al, 0x83
inc ebx
add byte [ebx - 0x7d], dl
inc ebx
add byte [ebx + eax*4], al
inc ebx
add byte [edx + 0x53004383], ah
add dword [ebx], 0xffffffb0
add dword [ebx], 0xffffffb0
add dword [ebx], 0xffffffb0
add dword [ebx], 0xffffffb2
add dword [ebx], 1
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi], bh
test byte [ebx], al
add dword [eax], eax
add byte [eax], al
ret 0x4383