Function at 0x435200
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
movzx eax, word [ebx]
mov dword [esp + 8], 0x302dbcd
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x435120
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
add ecx, 0xf3739e40
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xc0
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x4350f0
xor ecx, ecx
cmp dword [esp + 8], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x43f7a8]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + ecx]
mov dword [esp + 8], 0x514e081c
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 7
ja 0x435190
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
add edx, 0x95da5bed
xor edx, esi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0x5f
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 8
jb 0x435160
xor edx, edx
cmp eax, dword [esp + 8]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x43f7b0]
mov esi, dword [ebx + ecx + 0x78]
mov ecx, dword [ebx + ecx + 0x7c]
mov dword [esp + 0x24], ecx
test ecx, ecx
sete cl
test esi, esi
sete dl
or dl, cl
movzx ecx, dl
mov dword [esp + 0x14], esi
jmp dword [ecx*4 + 0x43f7b8]
mov eax, dword [ebx + esi + 0x20]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + esi + 0x24]
add eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + esi + 0x1c]
add eax, ebx
mov dword [esp + 0x1c], eax
xor ecx, ecx
xor eax, eax
cmp ecx, dword [ebx + esi + 0x18]
setb al
jmp dword [eax*4 + 0x43f7c0]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ebp, dword [eax + ecx*4]
add ebp, ebx
mov edx, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp byte [ebp + edx + 1], 0
lea edx, [edx + 1]
lea ecx, [ecx + 1]
jne 0x435220
mov dword [esp], 0x222220b3
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 3
ja 0x435283
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi]
add ecx, 0xba467708
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0xd8
mov esi, dword [esp + 4]
mov byte [esp + esi], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 4
jb 0x435250
test edx, edx
je 0x4352a0
mov edi, dword [esp]
mov esi, edi
not esi
cmp edx, 1
mov dword [esp + 0x10], esi
jne 0x4352b0
mov ecx, 0xb14a5e2
jmp 0x43530e
mov ecx, 0xb14a5e2
mov esi, dword [esp + 0x14]
jmp 0x435337
and eax, 0xfffffffe
mov ecx, 0xb14a5e2
nop
nop
nop
nop
nop
nop
nop
nop
movsx ebx, byte [ebp]
xor ebx, ecx
mov ecx, ebx
and ecx, esi
mov esi, ebx
not esi
and esi, edi
imul esi, ecx
mov ecx, ebx
and ecx, edi
or ebx, edi
imul ebx, ecx
add ebx, esi
movsx ecx, byte [ebp + 1]
add ebp, 2
xor ecx, ebx
mov esi, ecx
and esi, dword [esp + 0x10]
mov ebx, ecx
not ebx
and ebx, edi
imul ebx, esi
mov esi, ecx
and esi, edi
or ecx, edi
imul ecx, esi
mov esi, dword [esp + 0x10]
add ecx, ebx
add eax, 0xfffffffe
jne 0x4352c0
mov ebx, dword [esp + 0x40]
test dl, 1
mov esi, dword [esp + 0x14]
je 0x435337
movsx eax, byte [ebp]
xor ecx, eax
mov edx, dword [esp + 0x10]
and edx, ecx
mov eax, ecx
not eax
and eax, edi
imul eax, edx
mov edx, ecx
and edx, edi
or ecx, edi
imul ecx, edx
add ecx, eax
mov eax, dword [0x43f7e0]
nop
nop
nop
nop
jmp eax
mov edx, dword [0x43f7d0]
mov ecx, 2
nop
nop
nop
jmp edx
mov ecx, dword [case.0x43512b.1]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret