Function at 0x43a080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ecx, ecx
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
xchg ecx, ecx
je 0x43a139
dec dword [ecx + 4]
cmp dword [ecx + 4], 0
jg 0x43a0ef
mov ebp, ebp
mov eax, dword [ecx]
nop
mov dword [esp - 4], 0x33c22d52
xchg ebx, ebx
sub dword [esp - 4], 0x32af463
add dword [esp - 4], 0x4593bdae
sub dword [esp - 4], 0xa77153c
sub dword [esp - 4], 0x4466f0d5
mov dword [esp - 0x20], 0x1579198f
sub dword [esp - 4], 0x274cf08b
sub esp, 4
call dword [eax]
mov dword [esp - 0x24], ebp
mov dword [ebx + 0xc0], 0x6543b684
sub dword [ebx + 0xc0], 0x2f474dd3
add dword [ebx + 0xc0], 0x3f823720
mov edi, edi
sub dword [ebx + 0xc0], 0xf4541cc
sub dword [ebx + 0xc0], 0x30f5786d
add dword [ebx + 0xc0], 0x3ef64c9e
mov edx, edx
xor dword [ebx + 0xc0], 0x743a3236
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x43a1dc
mov dword [esp - 0x10], 0x7d56cb1a
dec dword [ecx + 4]
cmp dword [ecx + 4], 0
jg 0x43a196
mov eax, dword [ecx]
mov ecx, ecx
nop
mov dword [esp - 4], 0x21c88170
add dword [esp - 4], 0x2435870b
mov dword [esp - 0x44], 0x196b38b4
xor dword [esp - 4], 0x3aca8e8
xor dword [esp - 4], 0x47735df0
sub dword [esp - 4], 0x121fd62
sub esp, 4
mov dword [esp - 0x14], ebp
call dword [eax]
mov dword [ebx + 0xc4], 0x3c80f4c7
sub dword [ebx + 0xc4], 0x2594048f
mov esi, esi
add dword [ebx + 0xc4], 0x32ee5375
sub dword [ebx + 0xc4], 0x12e2c1fd
add dword [ebx + 0xc4], 0x17466244
mov dword [esp - 0x20], 0x43bd3b98
sub dword [ebx + 0xc4], 0x4e3ee3f4
mov eax, dword [ebx + 0x14]
test eax, eax
mov dword [esp - 0x38], 0x17f8bcf7
je 0x43a231
push eax
mov eax, dword [0x4c0e60]
xor eax, dword [0x4c0968]
mov dword [esp - 0xc], 0x279a2572
nop
sub esp, 4
mov dword [esp], 0x83873ce
add dword [esp], 0x57482e3c
mov dword [esp - 0x20], ebp
sub dword [esp], 0x5285fd4f
add dword [esp], 0x53cd9637
sub dword [esp], 0x60c83af6
xchg esp, esp
push dword [ebx + 0x18]
call eax
mov eax, dword [0x4c0ac8]
xor eax, dword [0x4c0968]
mov dword [esp - 0x20], 0x2a5ed064
push esi
push edi
lea edi, [ebx + 0xa8]
mov dword [esp - 0x24], ebp
push edi
call eax
mov eax, dword [ebx + 0x64]
mov esp, esp
mov esi, dword [ebx + 0x60]
test eax, eax
je 0x43a2d3
lea eax, [esi + eax*4]
mov dword [esp - 0x38], 0x73a9739b
mov dword [ebp - 8], eax
cmp esi, eax
je 0x43a2d3
mov dword [esp - 0x10], esi
mov ecx, dword [esi]
test ecx, ecx
je 0x43a2cc
mov eax, dword [ecx]
mov esi, esi
nop
mov dword [esp - 4], 0x4a6f811f
add dword [esp - 4], 0x14acddf2
xor dword [esp - 4], 0x359edc6a
xchg ebx, ebx
sub dword [esp - 4], 0x39fab3a
sub dword [esp - 4], 0x582513f5
xor dword [esp - 4], 0x78439f48
xor dword [esp - 4], 0x76fe5b05
mov ebx, ebx
sub esp, 4
call dword [eax]
mov eax, dword [ebp - 8]
mov dword [esp - 0x1c], 0x50efd9e6
add esi, 4
cmp esi, eax
jne 0x43a275
mov eax, dword [ebx + 0x8c]
xchg esp, esp
mov esi, dword [ebx + 0x88]
test eax, eax
je 0x43a364
mov dword [esp - 0x20], 0x3bd36764
lea eax, [esi + eax*4]
cmp esi, eax
je 0x43a364
mov edi, eax
mov ecx, ecx
mov eax, dword [esi]
mov dword [ebp - 8], eax
test eax, eax
je 0x43a34f
mov ebx, ebx
mov ecx, eax
call fcn.0045bdd0
nop
mov dword [esp - 0x20], 0x667f3506
mov dword [esp - 4], 0x62f9dd0d
add dword [esp - 4], 0x70b582a
sub dword [esp - 4], 0x5428d31e
mov esp, esp
xor dword [esp - 4], 0x379c7b1f
sub dword [esp - 4], 0x22400762
sub esp, 4
push dword [ebp - 8]
mov dword [esp - 0x40], edi
call fcn.00490c70
add esp, 8
add esi, 4
mov dword [esp - 0x10], ebx
cmp esi, edi
jne 0x43a2f8
lea edi, [ebx + 0xa8]
mov dword [esp - 0x14], ecx
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x43a3a9
mov eax, dword [ecx]
mov ebx, ebx
nop
sub esp, 4
mov dword [esp], 0x4e4dedcf
sub dword [esp], 0xa56db3c
mov ecx, ecx
add dword [esp], 0x31070bfb
sub dword [esp], 0x4ee65215
add dword [esp], 0x2bf2aa2d
xor dword [esp], 0x520a76a7
mov dword [esp - 0x40], 0x15e49fd1
call dword [eax]
cmp dword [ebx + 0x10], 1
jne 0x43a52d
mov dword [esp - 0x20], esp
cmp dword [ebx + 0x54], 0
je 0x43a52d
mov ecx, dword [ebx + 0x54]
lea eax, [ebx + 0x50]
mov ebx, ebx
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp ecx, 2
mov dword [esp - 0x1c], 0x7b8c92e7
jbe 0x43a3e5
mov eax, dword [eax]
mov dword [ebp - 4], eax
mov dword [esp - 0x18], ecx
lea eax, [ecx + 1]
mov ecx, 0x673b54c8
xor ecx, 0x214b2cbf
xor ecx, 0x12739a4e
mov ebp, ebp
xor ecx, 0x33764628
sub ecx, 0x2cf20692
sub ecx, 0x3a839d7d
mul ecx
mov dword [esp - 0x1c], 0x6282effa
pushf
mov ecx, 0x679816e6
sub ecx, 0x2ca34b5b
add ecx, 0x16da86ba
mov dword [esp - 0x3c], edx
xor ecx, 0x5896c5a
xor ecx, 0x6efb1aae
xor ecx, 0xc542db4e
xchg edx, edx
popf
cmovb eax, ecx
push eax
call fcn.00490c90
mov dword [esp - 0x24], edi
mov esi, eax
add esp, 4
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], esi
mov dword [esp - 0x44], 0x9e83281
test eax, eax
je 0x43a4ff
sub dword [ebp - 4], esi
mov dword [esp - 0x40], 0x6f5814e7
mov edx, esi
mov ebx, dword [ebp - 4]
xor edi, edi
mov dword [esp - 0x20], 0x7a123076
mov esi, eax
lea esp, [esp]
mov ecx, edi
mov dword [esp - 0x38], 0x41ff5720
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x7d9c8130
mov dword [esp - 0x24], 0xb4920c2
add eax, 0x1df7c4a
sub eax, 0x66ca2afa
add eax, 0x460cbdc7
sub eax, 0x709213f
mov dword [esp - 0x24], esi
add eax, 0xf22dab5
xor eax, 0x1d720d4c
shl ecx, 3
inc edi
xchg ecx, ecx
sar eax, cl
cbw
xor ax, word [edx + ebx - 2]
xchg ebp, ebp
mov word [edx - 2], ax
cmp edi, esi
jb 0x43a48c
mov dword [esp - 0x14], edi
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [esp - 0x40], 0x5c8e9fca
lea edi, [ebx + 0xa8]
xor ecx, ecx
mov word [esi + eax*2], cx
mov dword [esp - 0x44], 0x1f16eecc
push dword [ebx + 0x1c]
mov eax, dword [0x4c0cd8]
xor eax, dword [0x4c0968]
push esi
mov esi, esi
call eax
push esi
call fcn.00490c60
add esp, 4
mov dword [esp - 0x30], esi
mov eax, dword [0x4c0ad0]
xor eax, dword [0x4c0968]
push edi
call eax
mov edi, edi
cmp dword [ebx + 0xd0], 2
jbe 0x43a558
push dword [ebx + 0xcc]
mov dword [esp - 0x18], ebx
call fcn.00490c60
add esp, 4
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
mov dword [esp - 0x3c], 0x39838d81
je 0x43a5a9
mov eax, dword [ecx]
nop
mov edx, edx
mov dword [esp - 4], 0x203c77c7
xor dword [esp - 4], 0x1d6a38c
add dword [esp - 4], 0x53c3ba2d
mov ebp, ebp
sub dword [esp - 4], 0xf1f354c
add dword [esp - 4], 0xedb61a4
sub dword [esp - 4], 0x756abacf
mov edi, edi
sub esp, 4
call dword [eax + 8]
mov eax, dword [0x4c0ac0]
mov dword [esp - 0x40], ebp
xor eax, dword [0x4c0968]
push edi
call eax
mov eax, dword [ebx + 0x88]
xchg esp, esp
pop edi
pop esi
test eax, eax
je 0x43a620
xchg ebx, ebx
push eax
call fcn.00490c60
add esp, 4
mov esp, esp
mov dword [ebx + 0x88], 0x1db1c821
add dword [ebx + 0x88], 0x5edf06f5
sub dword [ebx + 0x88], 0x28abf423
add dword [ebx + 0x88], 0x2a22c59d
mov ecx, ecx
xor dword [ebx + 0x88], 0x478828af
xor dword [ebx + 0x88], 0x7e1cd795
sub dword [ebx + 0x88], 0x47935faa
mov esp, esp
cmp dword [ebx + 0x84], 2
jbe 0x43a639
push dword [ebx + 0x80]
call fcn.00490c60
xchg esi, esi
add esp, 4
cmp dword [ebx + 0x7c], 2
jbe 0x43a64c
push dword [ebx + 0x78]
mov edx, edx
call fcn.00490c60
add esp, 4
cmp dword [ebx + 0x74], 2
jbe 0x43a65f
xchg esi, esi
push dword [ebx + 0x70]
call fcn.00490c60
add esp, 4
mov eax, dword [ebx + 0x60]
xchg esi, esi
test eax, eax
je 0x43a6a3
push eax
mov dword [esp - 0x44], ecx
call fcn.00490c60
add esp, 4
mov dword [ebx + 0x60], 0x5a0ab551
mov edx, edx
sub dword [ebx + 0x60], 0x367bee46
xor dword [ebx + 0x60], 0x2d5a7582
add dword [ebx + 0x60], 0x93e4990
xchg esi, esi
add dword [ebx + 0x60], 0x503d9373
sub dword [ebx + 0x60], 0x68508f8c
cmp dword [ebx + 0x54], 2
jbe 0x43a6b6
mov esi, esi
push dword [ebx + 0x50]
call fcn.00490c60
add esp, 4
mov ecx, ebx
mov ecx, ecx
call fcn.0043b6d0
pop ebx
mov esp, ebp
mov ecx, ecx
pop ebp
ret