Function at 0x43b94f
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x29c
mov edx, dword [esp + 0x2bc]
mov dword [esp + 0x83], 0xe48040
mov dword [esp + 0x80], 0x4010ec83
mov dword [esp + 0x7c], 0x48e78948
mov dword [esp + 0x78], 0xce8948fc
lea edi, [esp + 0x9c]
lea eax, [esp + 0x78]
mov ecx, 3
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa8]
lea eax, [esp + 0x84]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x86]
mov byte [esp + 0xaa], al
mov eax, edx
mov ebx, edx
cmp edx, 4
jb 0x43b910
mov ebx, 4
lea ebp, [esp + 0xab]
test eax, eax
je 0x43bdad
xor ecx, ecx
mov dword [esp + 8], ebx
jmp 0x43b940
mov ebx, dword [esp + 8]
mov ecx, dword [esp]
inc ecx
cmp ecx, ebx
je 0x43bba8
cmp ecx, 3
ja case.default.0x43b948
mov dword [esp], ecx
jmp dword [ecx*4 + 0x4406c8]
mov dword [esp + 0x10], 0x9160e224
mov dword [esp + 0x14], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x10]
mov esi, ecx
and esi, 3
xor esi, 0x912d8b1b
mov edi, ecx
and edi, 4
sub edi, esi
xor edi, edx
mov edx, edi
and edx, 6
add edx, edx
xor edi, 0x79
sub edx, edi
mov byte [esp + ecx + 0x10], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 8
jb 0x43b970
lea esi, [esp + 0x10]
mov edx, esi
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, esi
mov ecx, 1
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x12]
mov byte [ebp + 2], cl
add ebp, 3
jmp 0x43b934
mov dword [esp + 0x10], 0x91481250
mov byte [esp + 0x14], 0x80
mov dword [esp + 0x15], 0
mov ecx, 0x53fde71e
lea edi, [esp + 0x10]
nop
nop
movzx edx, byte [edi]
mov esi, ecx
or esi, edx
lea ebx, [ecx - 0x53fde700]
and ebx, edx
not esi
or esi, ebx
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
add dl, 0x9a
mov byte [edi], dl
inc edi
dec ecx
cmp ecx, 0x53fde715
jne 0x43ba00
lea edx, [esp + 0x10]
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0x14]
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp 0x43b930
mov dword [esp + 4], ebp
mov dword [esp + 0x10], 0xc9804280
mov byte [esp + 0x14], 0xd0
lea eax, [esp + 0x14]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov ecx, 0x1fde36b2
mov edi, 0x2021c94e
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x2021c93e]
lea esi, [ecx - 0x40000000]
xor esi, edx
or esi, ecx
add esi, edi
add esi, esi
sub edx, esi
lea ebp, [edi + edx]
dec ebp
mov edx, ebp
and edx, 0xdf57117e
mov esi, ebp
xor esi, 0x5f57117e
lea ebx, [esi + edx*2]
mov edx, ebx
not edx
or edx, 1
lea esi, [edx + ebx]
inc esi
mov eax, esi
and eax, 2
mov edx, esi
or esi, 2
imul esi, eax
xor eax, 2
and edx, 0xfd
imul edx, eax
and ebp, 1
or ebx, 1
xor ebx, ebp
add ebx, esi
add ebx, edx
mov byte [esp + edi - 0x2021c93e], bl
dec ecx
inc edi
cmp ecx, 0x1fde36a7
jne 0x43ba90
lea eax, [esp + 0x10]
mov ecx, 1
mov ebp, dword [esp + 4]
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add ebp, 4
lea eax, [esp + 0x14]
mov edi, ebp
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2bc]
jmp 0x43b930
mov dword [esp + 0x10], 0x91201e54
mov byte [esp + 0x14], 0x88
mov dword [esp + 0x15], 0
mov ecx, 0xefde9ae3
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x1021652d]
mov esi, ecx
and esi, edx
add edx, ecx
add esi, esi
mov edi, edx
sub edi, esi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0x90
mov byte [esp + ecx + 0x1021652d], dl
inc ecx
cmp ecx, 0xefde9aec
jne 0x43bb50
lea edx, [esp + 0x10]
mov edi, ebp
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0x14]
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp 0x43b934
cmp eax, 3
jbe 0x43bdad
test al, 1
je 0x43bbdf
mov eax, 0x440be2
mov edx, 0x440be2
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, 1
mov edi, ebp
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x2bc]
add ebp, 2
mov ecx, eax
lea eax, [eax*8]
mov esi, 0xffffffff
mov edi, 0xffffffff
cmp eax, 0x7ffffffe
ja 0x43c251
dec ecx
cmp ecx, 4
jb 0x43bdad
mov eax, ecx
lea ebx, [esp + 0x18]
jmp 0x43bc1d
mov eax, dword [esp]
dec eax
cmp eax, 3
jbe 0x43bdad
mov edx, eax
and eax, 0xfffffff7
mov ecx, edx
and ecx, 8
mov dword [esp], edx
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
cmp edx, 0x7e
ja 0x43bd40
mov dword [esp + 8], edx
mov dword [esp + 4], ebp
mov dword [esp + 0x10], 0x2108b20c
mov word [esp + 0x14], 0x43f0
mov byte [ebx], 0
mov word [ebx - 2], 0
mov edi, 0xff16098f
mov ebx, 0xe9f671
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0xe9f661]
lea esi, [edi - 1]
mov edx, esi
and edx, 0x6816015f
mov ecx, ebx
and ecx, 0x29a0a0
or ecx, edx
xor ecx, eax
mov ebp, ecx
xor ebp, 0x68d6575f
add ecx, ecx
xor ecx, 0x51acaebf
sub ebp, ecx
and ebp, ebx
mov ecx, ebp
and ecx, 2
mov edx, ebp
or ebp, 2
imul ebp, ecx
xor ecx, 2
and edx, 0xe9f6fd
imul edx, ecx
add ebp, edx
add edi, ebp
xor edi, eax
not ebp
add ebp, ebx
and ebp, eax
add ebp, ebp
sub ebp, edi
mov eax, ebp
xor eax, 0x491d036
and ebp, 0x3b6e2fc9
add ebp, ebp
sub ebp, eax
mov eax, ebp
and eax, 1
xor ebp, 1
lea eax, [eax*2]
add eax, ebp
mov byte [esp + ebx - 0xe9f661], al
inc ebx
mov edi, esi
cmp esi, 0xff160986
jne 0x43bc70
lea eax, [esp + 0x10]
mov ebp, dword [esp + 4]
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [ebp + 4]
lea eax, [esp + 0x14]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x14]
mov byte [ebp + 4], al
mov eax, dword [esp + 8]
mov byte [ebp + 3], al
add ebp, 5
lea ebx, [esp + 0x18]
jmp 0x43bc10
mov dword [esp + 0x10], 0x176c6e20
mov dword [esp + 0x14], 0x23929594
mov byte [esp + 0x18], 0x90
mov word [ebx + 5], 0
mov dword [ebx + 1], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa6
xor cl, byte [esp + eax + 0x10]
add cl, 0xc2
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xf
jne 0x43bd70
lea eax, [esp + 0x10]
mov edi, ebp
mov ecx, 2
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [ebp + 8]
mov eax, ebx
xor ecx, ecx
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp + 3], edx
mov ebp, esi
jmp 0x43bc10
mov dword [esp + 4], ebp
mov dword [esp + 0x10], 0x295eb6f4
lea ebp, [esp + 0x14]
mov byte [esp + 0x14], 0x48
mov dword [esp + 0x15], 0
lea ecx, [esp + 0x10]
mov eax, 0x5c720f8c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
mov esi, eax
and esi, 0x5050080a
lea edi, [eax - 0x80000000]
and edi, 0x8c2207f5
or edi, esi
mov esi, edx
xor esi, 0x7350680a
mov ebx, edi
xor ebx, 0x8caf97f5
or ebx, esi
xor edx, 0xcaf97f5
xor edi, 0x7350680a
or edi, edx
and edi, ebx
mov edx, edi
xor edx, 0xb1c5b240
and edi, 0xe3a4dbf
add edi, edi
sub edi, edx
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x5c720f83
jne 0x43bde0
lea eax, [esp + 0x10]
mov edx, dword [esp + 4]
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [edx + 4]
mov edi, esi
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov dword [esp + 0x97], 0xc3fc8948
mov dword [esp + 0x94], 0x48d2ff41
mov dword [esp + 0x88], 0xba49c031
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x88]
mov ecx, 4
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x14]
lea eax, [esp + 0x98]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x9a]
mov byte [edx + 0x16], al
lea ecx, [esp + 0x9c]
mov eax, ecx
neg eax
lea ebx, [edx + eax]
add ebx, 0x17
sub edx, ecx
mov dword [esp + 0xc], 0
add edx, 0x70
mov dword [esp + 0x74], edx
mov dword [esp + 0x10], 0x3c3d3a3b
mov word [esp + 0x14], 0
mov eax, 0x5c8a
mov ecx, 0xffff2375
nop
nop
nop
movzx edx, byte [esp + eax - 0x5c7a]
mov esi, ecx
and esi, 0xf544012a
mov edi, eax
and edi, 0x4815
or edi, esi
xor edx, 0xf54495aa
mov esi, edx
and esi, edi
add esi, esi
sub edi, esi
lea esi, [edi + edx]
add edx, edi
add edx, 0xfffbb14d
mov edi, edx
and edi, 1
and esi, 1
and edx, 0xfe
or edx, esi
xor esi, 1
or esi, edi
lea edx, [edx + esi*2]
mov byte [esp + eax - 0x5c7a], dl
inc eax
dec ecx
cmp eax, 0x5c90
jne 0x43bf10
mov esi, dword [esp + 0x10]
mov eax, dword [0x44a3a4]
test eax, eax
je 0x43bfc0
xor ecx, ecx
mov edx, dword [0x44a3a8]
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43bf90
inc ecx
cmp eax, ecx
jne 0x43bf80
jmp 0x43bfc0
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43bfc0
lea ecx, [esp + 0x74]
lea edx, [esp + 0xc]
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 0x18
push eax
push dword [0x44a3ac]
call fcn.00439600
add esp, 0x24
mov esi, eax
test esi, esi
js 0x43c220
mov dword [esp + 0x10], 0xa52b70bd
mov dword [esp + 0x14], 0xfb5772a7
mov dword [esp + 0x18], 0xdffabc7f
mov dword [esp + 0x1c], 0xfbfac5c4
mov dword [esp + 0x20], 0xa13e7e90
mov dword [esp + 0x24], 0x4acae17b
mov dword [esp + 0x28], 0xf3b00a16
mov dword [esp + 0x2c], 0xebeaf5a3
mov dword [esp + 0x30], 0xddf6ef51
mov dword [esp + 0x34], 0x79e2edec
mov dword [esp + 0x38], 0x1654085c
mov dword [esp + 0x3c], 0x782e2163
mov dword [esp + 0x40], 0x27d8747a
mov dword [esp + 0x44], 0x375ea21c
mov dword [esp + 0x48], 0x466e4f13
mov dword [esp + 0x4c], 0xe1097ed4
mov dword [esp + 0x50], 0x4bf5796b
mov dword [esp + 0x54], 0x3250928
mov dword [esp + 0x58], 0x4bbf0100
mov dword [esp + 0x5c], 0xfd837d20
mov dword [esp + 0x60], 0xfe46f919
mov dword [esp + 0x64], 0x6f311d22
lea esi, [esp + 0x68]
mov word [esp + 0x68], 0x3114
mov word [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x52
xor cl, byte [esp + eax + 0x10]
add cl, 0x66
mov byte [esp + eax + 0x10], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x60
jb 0x43c0a0
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x10]
mov edi, eax
mov ecx, 0x16
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [eax + 0x58]
xor edx, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea edi, [eax + 0x59]
movzx ecx, byte [esp + 0x68]
mov byte [eax + 0x58], cl
mov ecx, ebx
shr ecx, 2
lea esi, [esp + 0x9c]
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, ebx
and ecx, 0xfffffffc
add eax, ecx
add eax, 0x59
lea esi, [esp + ecx]
add esi, 0x9c
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, esi
mov edi, eax
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x43c134
and ebx, 2
movzx ecx, byte [esi + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], 0x191a1bbb
mov dword [esp + 0x14], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0xbb
xor cl, byte [esp + edx + 0x10]
add cl, 0x59
mov byte [esp + edx + 0x10], cl
inc edx
cmp edx, 8
jne 0x43c150
mov ecx, dword [esp + 0x10]
add ecx, eax
push dword [esp + 0x2b8]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x70], 0
mov dword [esp + 0x10], 0x3c3d3a3b
mov word [esp + 0x14], 0
mov eax, 0x5c8a
mov ecx, 0xffff2375
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x5c7a]
mov ebx, ecx
and ebx, 0xf544012a
mov ebp, eax
and ebp, 0x4815
or ebp, ebx
xor edx, 0xf54495aa
mov ebx, edx
and ebx, ebp
add ebx, ebx
sub ebp, ebx
lea ebx, [edx + ebp]
add edx, ebp
add edx, 0xfffbb14d
mov ebp, edx
and ebp, 1
and ebx, 1
and edx, 0xfe
or edx, ebx
xor ebx, 1
or ebx, ebp
lea edx, [edx + ebx*2]
mov byte [esp + eax - 0x5c7a], dl
inc eax
dec ecx
cmp eax, 0x5c90
jne 0x43c1a0
mov eax, dword [0x44a3a4]
test eax, eax
je 0x43c251
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebx, dword [0x44a3a8]
cmp dword [ebx + edx*8], 0x16194952
je 0x43c227
inc edx
cmp eax, edx
jne 0x43c210
jmp 0x43c251
mov edi, esi
sar edi, 0x1f
jmp 0x43c251
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43c251
lea ecx, [esp + 0x70]
lea edx, [esp + 0xc]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44a3ac]
call fcn.00439600
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x29c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10