Function at 0x43d7f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov edi, dword [esp + 0x5c]
movzx eax, word [edi]
mov dword [esp + 0x28], 0x9594716f
mov byte [esp + 0x2c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x43d3e7
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + edx]
add esi, 0xe0ea5946
add ecx, 0xe0ea5946
and ecx, edx
mov edx, esi
xor edx, ecx
add edx, ecx
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x24
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x43d3a0
xor ecx, ecx
cmp dword [esp + 0x28], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x4480e8]
mov ebx, dword [edi + 0x3c]
mov ecx, dword [edi + ebx]
mov dword [esp + 0x28], 0x1714aaaa
mov byte [esp + 0x2c], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x43d450
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x28]
add edx, 0xec113de7
xor edx, esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
add dl, 3
mov esi, dword [esp]
mov byte [esp + esi + 0x28], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x43d420
xor edx, edx
cmp ecx, dword [esp + 0x28]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x448100]
mov ecx, dword [edi + ebx + 0x7c]
mov edx, dword [edi + ebx + 0x78]
test ecx, ecx
sete al
test edx, edx
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x448108]
mov eax, dword [edi + edx + 0x20]
add eax, edi
mov dword [esp + 0x44], eax
mov eax, dword [edi + edx + 0x24]
add eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [edi + edx + 0x1c]
add eax, edi
mov dword [esp + 0x20], eax
mov esi, dword [0x449d7c]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x448110]
mov eax, edi
mov edi, dword [0x449d78]
mov dword [esp + 4], edx
mov eax, dword [eax + edx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43d4d7
shl eax, 3
mov ecx, eax
push ecx
call fcn.00409840
add esp, 4
mov ecx, edi
not ecx
or ecx, 0xfffffff7
add ecx, edi
inc ecx
mov edx, edi
and edx, 8
or edi, 8
imul edi, edx
xor edx, 8
imul edx, ecx
mov ecx, edx
and ecx, edi
xor edi, edx
lea ebx, [edi + ecx*2]
lea edx, [esi + ebx]
cmp eax, esi
jbe 0x43d5b0
cmp edx, eax
jbe 0x43d5b0
test ebx, ebx
je 0x43d57e
add ecx, ecx
lea ebp, [esi + edi]
dec ebp
lea ebx, [eax + edi]
dec ebx
neg edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp + ecx]
mov byte [ebx + ecx], dl
movzx edx, byte [ebp + ecx - 1]
mov byte [ebx + ecx - 1], dl
movzx edx, byte [ebp + ecx - 2]
mov byte [ebx + ecx - 2], dl
movzx edx, byte [ebp + ecx - 3]
mov byte [ebx + ecx - 3], dl
movzx edx, byte [ebp + ecx - 4]
mov byte [ebx + ecx - 4], dl
movzx edx, byte [ebp + ecx - 5]
mov byte [ebx + ecx - 5], dl
movzx edx, byte [ebp + ecx - 6]
mov byte [ebx + ecx - 6], dl
movzx edx, byte [ebp + ecx - 7]
mov byte [ebx + ecx - 7], dl
add ecx, 0xfffffff8
cmp edi, ecx
jne 0x43d530
xor ecx, ecx
test esi, esi
sete cl
jmp dword [ecx*4 + 0x448118]
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, eax
add edi, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov esi, dword [0x449d7c]
xor ecx, ecx
test esi, esi
sete cl
jmp dword [ecx*4 + 0x448118]
push esi
mov esi, eax
call fcn.00409850
mov eax, esi
add esp, 4
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 4]
mov dword [0x449d7c], eax
mov eax, dword [case.0x43d5d7.5]
nop
nop
nop
jmp eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x14], 0
cmp edx, dword [edi + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x448130]
mov edx, dword [esp + 0xc]
inc edx
xor eax, eax
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 4]
cmp edx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448130]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov eax, dword [eax + edx*4]
add eax, edi
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x43d660
mov dword [esp + 0x28], 0x8e8e8c1f
mov word [esp + 0x2c], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 5
ja 0x43d6c0
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x28]
add edx, 0xfa0c
xor edx, esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
add dl, 0x80
mov esi, dword [esp]
mov byte [esp + esi + 0x28], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 6
jb 0x43d690
mov edi, 0xb14a5e2
test ecx, ecx
je 0x43d70e
mov edx, dword [esp + 0x28]
mov esi, edx
not esi
mov dword [esp + 0x18], esi
mov ebp, 0xb14a5e2
xor ebx, ebx
nop
nop
nop
nop
movsx esi, byte [eax + ebx]
lea edi, [esi + ebp]
and ebp, esi
add ebp, ebp
sub edi, ebp
mov esi, edi
or esi, edx
mov ebp, edi
and ebp, edx
imul ebp, esi
mov esi, edi
and esi, dword [esp + 0x18]
not edi
and edi, edx
imul edi, esi
add edi, ebp
inc ebx
mov ebp, edi
cmp ecx, ebx
jne 0x43d6e0
mov ecx, edi
xor ecx, 0x43ac3278
xor edx, edx
or ecx, dword [0x449d80]
sete dl
jmp dword [edx*4 + 0x448138]
xor ecx, ecx
cmp byte [eax], 0x4e
setne cl
jmp dword [ecx*4 + 0x448150]
xor ecx, ecx
cmp byte [eax + 1], 0x74
setne cl
jmp dword [ecx*4 + 0x448158]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffffffff
xor esi, esi
xor eax, eax
cmp esi, 0x20
setl al
jmp dword [eax*4 + 0x448170]
jmp dword [0x448148]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
mov dword [0x449d80], eax
inc edx
xor eax, eax
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 4]
cmp edx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448130]
jmp dword [0x44816c]
mov edx, dword [esp + 0xc]
inc edx
xor eax, eax
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 4]
cmp edx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448130]
jmp dword [eax*4 + 0x4481d8]
xor eax, eax
cmp esi, 0x20
setl al
jmp dword [eax*4 + 0x448170]
mov eax, dword [esp + 0x18]
add eax, esi
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00401000
add esp, 8
mov ecx, dword [esp + 0x40]
mov edx, ecx
shr edx, 0xa
and edx, 4
jmp dword [edx + 0x448178]
movzx ebx, byte [esp + 0x2e]
xor edx, edx
cmp bl, 0xc2
sete dl
mov byte [esp + 0xb], bl
jmp dword [edx*4 + 0x448190]
xor edx, edx
cmp bl, 0xc3
sete dl
jmp dword [edx*4 + 0x4481a0]
mov ecx, dword [case.0x43d5d7.29]
nop
nop
nop
nop
nop
nop
nop
mov eax, 1
jmp ecx
mov ecx, dword [case.0x43d5d7.29]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, 1
jmp ecx
mov ebp, ecx
or ebp, 8
mov ebx, ecx
xor ebx, 0xfffffff7
and ebx, ebp
mov ebp, ecx
and ebp, 8
xor edx, edx
or ebp, ebx
setne dl
jmp dword [edx*4 + 0x448198]
xor edx, edx
cmp byte [esp + 0xb], 0xb8
sete dl
jmp dword [edx*4 + 0x4481b8]
shr ecx, 2
and ecx, 4
jmp dword [ecx + 0x4481c0]
add esi, eax
xor eax, eax
jmp dword [eax*4 + 0x4481d8]
mov eax, 1
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x4481d8]
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
setne al
jmp dword [eax*4 + 0x4481e0]
xor eax, eax
xor edx, edx
cmp eax, dword [0x449d78]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x4481e8]
mov dword [edx + ecx*8 + 4], esi
xor edx, edx
mov al, 1
jmp dword [edx*4 + 0x4481f8]
inc ecx
xor edx, edx
cmp ecx, dword [0x449d78]
setb dl
jmp dword [edx*4 + 0x4481e8]
mov edx, dword [0x449d7c]
xor ebx, ebx
cmp dword [edx + ecx*8], edi
sete bl
jmp dword [ebx*4 + 0x4481f0]
mov edx, 1
jmp dword [edx*4 + 0x4481f8]
and al, 1
movzx eax, al
mov cl, 1
mov dword [esp + 0x14], ecx
jmp dword [eax*4 + 0x448200]
mov eax, dword [0x449d78]
lea ecx, [eax + 1]
mov dword [0x449d78], ecx
mov ecx, dword [0x449d7c]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], esi
mov al, 1
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xc]
inc edx
xor eax, eax
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 4]
cmp edx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x448130]
mov eax, dword [esp + 0x14]
and al, 1
mov ecx, dword [case.0x43d5d7.62]
nop
jmp ecx
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
rol dword [ebx], cl
mov ecx, 0x10043d9
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add cl, bh
rol dword [ebx], cl
invalid
aad 0x43
add bl, ch
aad 0x43
add byte [eax], al
salc
inc ebx
add byte [eax], al
salc
inc ebx
add byte [eax], al
salc
inc ebx
add byte [edx], al
salc
inc ebx
add byte [ebx + 0x400043d9], dh
salc
inc ebx
add byte [eax], ch
xlatb
inc ebx
add byte [eax - 0x7fffbc29], al
xlatb
inc ebx
add byte [eax - 0x79ffbc29], al
xlatb
inc ebx
add byte [eax + 0x370043d7], al
xlatb
inc ebx
add al, al
xlatb
inc ebx
add byte [edi - 0x29], al
inc ebx
add al, al
xlatb
inc ebx
add al, al
xlatb
inc ebx
add al, al
xlatb
inc ebx
add al, al
xlatb
inc ebx
add dh, al
xlatb
inc ebx
add bl, ch
fadd dword [ebx]
push es
fadd dword [ebx]
sub al, 0xd8
inc ebx
add byte [eax - 0x28], dh
inc ebx
add byte [eax - 0x7fffbc28], al
fadd dword [ebx]
sbb al, 0x43
add al, dh
xlatb
inc ebx
add byte [eax + ebx*8 + 0x43], al
add byte [eax - 0x50ffbc28], dl
fadd dword [ebx]
push ebx
fadd dword [ebx]
scasd eax, dword es:[edi]
fadd dword [ebx]
push ebx
fadd dword [ebx]
pushal
fadd dword [ebx]
pushal
fadd dword [ebx]
pushal
fadd dword [ebx]
invalid