Function at 0x43d37b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
movzx eax, byte [ebx]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
push edi
xor edi, edi
lea ecx, [eax - 1]
mov dword [ebp - 4], edi
test ecx, ecx
jle 0x43d3b9
mov eax, edi
push 6
cdq
pop edi
idiv edi
mov edi, dword [ebp - 4]
mov al, byte [edx + 0x478774]
xor byte [ebx + edi + 1], al
inc edi
cmp edi, ecx
mov dword [ebp - 4], edi
jl 0x43d39c
push dword [ebp + 0xc]
mov ecx, dword [esi + 0x114]
push 0x3e8
call fcn.0045006f
mov edi, eax
test edi, edi
je 0x43d86c
movzx eax, byte [ebx + 1]
cmp eax, 0x5b
jg 0x43d625
je 0x43d5b1
cmp eax, 0x1f
je 0x43d589
cmp eax, 0x2e
je 0x43d4b2
cmp eax, 0x3d
je 0x43d42f
cmp eax, 0x4c
jne 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
mov eax, dword [ebp + 0x10]
add ebx, 2
add eax, 0xfffffffe
mov ecx, esi
push eax
push ebx
push dword [ebp + 0xc]
call fcn.0043fa35
jmp 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
cmp edi, dword [esi + 0x100]
je 0x43d86c
mov ax, word [ebx + 2]
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
mov dword [edi + 0x1a4], ecx
push dword [edi + 0x318]
call fcn.004401eb
mov ax, word [ebx + 4]
pop ecx
pop ecx
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
push dword [edi + 0x31c]
call fcn.004401eb
movzx eax, byte [ebx + 6]
pop ecx
mov dword [edi + 0x304], eax
pop ecx
jmp 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
mov eax, dword [esi + 0x100]
cmp dword [eax + 0x30c], 1
jne 0x43d55a
xor ebx, ebx
mov ecx, dword [esi + 0x114]
push ebx
push 0x3e8
call fcn.0045006f
test eax, eax
je 0x43d503
mov ecx, dword [eax + 0x158]
add eax, 0x158
cmp ecx, dword [esi + 0xc00]
jne 0x43d503
mov ecx, dword [esi + 0xc30]
mov dword [eax], ecx
inc ebx
cmp ebx, 8
jl 0x43d4d3
mov ecx, esi
mov dword [esi + 0x108], edi
call fcn.0043fb4d
push 0
mov ecx, esi
push dword [edi + 0x178]
call fcn.0043fc94
push edi
mov ecx, esi
call fcn.0043be37
mov ecx, dword [esi + 0x268]
push 0
lea edx, [ecx + eax*4 + 0xf0]
lea eax, [esi + eax*4 + 0x39c]
push edx
push eax
call fcn.004578dd
push 1
push 3
mov ecx, edi
call fcn.004059aa
jmp 0x43d86c
push 2
mov ecx, esi
pop edi
mov dword [eax + 0x30c], edi
push dword [esi + 0x100]
call fcn.0043be37
mov ecx, dword [esi + 0x268]
push edi
lea edx, [ecx + eax*4 + 0x110]
lea eax, [esi + eax*4 + 0x3bc]
push edx
push eax
jmp 0x43d5a7
cmp word [ebp + 8], 0x6221
jne 0x43d86c
mov ecx, dword [esi + 0x268]
push 1
lea eax, [ecx + 0x2c]
push eax
push dword [esi + 0x13c]
call fcn.00457838
jmp 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
mov ecx, dword [esi + 0x104]
lea eax, [esi + 0x104]
mov edi, dword [ecx + 0x39c0]
mov ecx, dword [esi + 0x268]
mov eax, dword [eax]
mov dword [ebp + 8], ecx
movzx ecx, byte [ebx + 6]
movzx eax, byte [eax + 0x362a]
xor eax, ecx
mov ecx, dword [esi + 0x284]
push eax
call fcn.004592da
cdq
mov ecx, dword [ebp + 8]
sub eax, edx
sar eax, 1
add eax, dword [edi]
push eax
lea eax, [ecx + 0x134]
push eax
push edi
call fcn.004578dd
mov eax, dword [ebp + 0x10]
add ebx, 2
add eax, 0xfffffffe
mov ecx, esi
push eax
push ebx
push dword [ebp + 0xc]
call fcn.0043f670
jmp 0x43d86c
sub eax, 0x6a
je 0x43d802
sub eax, 0xf
je 0x43d67c
sub eax, 0xf
jne 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
cmp edi, dword [esi + 0x100]
je 0x43d86c
mov ax, word [ebx + 2]
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
mov dword [edi + 0x1a4], ecx
jmp 0x43d86c
cmp word [ebp + 8], 0x6221
jne 0x43d86c
mov ecx, esi
call fcn.0043fb4d
and dword [ebp + 0x10], 0
lea eax, [esi + 0x3bc]
mov dword [ebp + 8], 0x110
mov dword [ebp - 4], eax
push dword [ebp + 0x10]
mov ecx, dword [esi + 0x114]
push 0x3e8
call fcn.0045006f
test eax, eax
je 0x43d6d7
and dword [eax + 0x30c], 0
mov ecx, dword [esi + 0x268]
mov eax, dword [ebp + 8]
push 0
add eax, ecx
push eax
push dword [ebp - 4]
call fcn.00457838
add dword [ebp + 8], 4
inc dword [ebp + 0x10]
add dword [ebp - 4], 4
cmp dword [ebp + 8], 0x130
jl 0x43d6a3
and dword [edi + 0x244], 0
push 0
push dword [edi + 0x198]
call fcn.004401eb
mov eax, dword [ebp + 0xc]
pop ecx
pop ecx
mov ecx, dword [esi + 0x268]
push 0
lea edx, [ecx + eax*4 + 0x90]
lea eax, [esi + eax*4 + 0x33c]
push edx
push eax
call fcn.00457838
mov dword [edi + 0x218], 1
mov ax, word [ebx + 2]
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
mov dword [edi + 0x1a4], ecx
push dword [edi + 0x318]
call fcn.004401eb
mov ax, word [ebx + 4]
pop ecx
pop ecx
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
push dword [edi + 0x31c]
call fcn.004401eb
movzx eax, byte [ebx + 6]
mov dword [edi + 0x204], eax
pop ecx
movzx eax, byte [ebx + 7]
mov dword [edi + 0x304], eax
mov ax, word [ebx + 8]
pop ecx
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movsx eax, ax
movsx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
push dword [edi + 0x1c0]
call fcn.004401eb
mov ax, word [ebx + 0xa]
pop ecx
pop ecx
push eax
call dword [sym.imp.ws2_32.dll_htons]
mov ecx, dword [esi + 0x104]
movzx eax, ax
movzx ecx, word [ecx + 0x362a]
xor ecx, eax
push ecx
push dword [edi + 0x1ec]
call fcn.004401eb
movzx eax, byte [ebx + 0xc]
pop ecx
mov dword [edi + 0x20c], eax
pop ecx
push 0
jmp 0x43d54c
cmp word [ebp + 8], 0x6221
je 0x43d86c
mov ecx, dword [esi + 0x104]
lea eax, [esi + 0x104]
lea edi, [ebx + 2]
mov ebx, dword [ecx + 0x39c0]
mov ecx, dword [esi + 0x268]
mov eax, dword [eax]
mov dword [ebp + 8], ecx
movzx ecx, byte [edi]
movzx eax, byte [eax + 0x362a]
xor eax, ecx
mov ecx, dword [esi + 0x284]
push eax
call fcn.004592da
cdq
mov ecx, dword [ebp + 8]
sub eax, edx
sar eax, 1
add eax, dword [ebx]
push eax
lea eax, [ecx + 0x134]
push eax
push ebx
call fcn.004578dd
mov eax, dword [ebp + 0x10]
mov ecx, esi
add eax, 0xfffffffe
push eax
push edi
push dword [ebp + 0xc]
call fcn.0043ec51
pop edi
pop esi
pop ebx
leave
ret 0xc