Function at 0x43ac97
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x294
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x7b], 0xe48040
mov dword [esp + 0x78], 0x4010ec83
mov dword [esp + 0x74], 0x48e78948
mov dword [esp + 0x70], 0xce8948fc
lea edi, [esp + 0x94]
lea eax, [esp + 0x70]
mov ecx, 3
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa0]
lea eax, [esp + 0x7c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x7e]
mov byte [esp + 0xa2], al
mov dword [esp + 0x64], edx
cmp edx, 4
jb 0x43ac67
mov dword [esp + 0x64], 4
lea ebp, [esp + 0xa3]
test edx, edx
je 0x43b106
xor eax, eax
jmp 0x43ac8b
inc eax
cmp eax, dword [esp + 0x64]
je 0x43af1e
cmp eax, 3
ja case.default.0x43ac90
jmp dword [eax*4 + 0x43f6c8]
mov dword [esp], ebp
mov dword [esp + 8], 0x97e46e20
mov dword [esp + 0xc], 0
mov ecx, 0x324eed8
mov edi, 0x4db1126
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0x4db111e]
lea esi, [ebp*2]
not esi
add esi, ebp
and esi, 0xbf915ad5
and ebp, 0x2a
or ebp, esi
lea edx, [ecx + 1]
mov esi, edx
and esi, 0x3004044
mov ebx, edi
and ebx, 0x4100001
or ebx, esi
or edx, 0x406ea52a
mov esi, ebx
xor esi, 0x3004044
xor ebx, 0xbba7f56e
or ebx, esi
mov esi, ecx
sub esi, edx
and esi, ebx
xor esi, ebp
mov edx, esi
not edx
and edx, 0x41
xor esi, 0xbe
lea edx, [esi + edx*2]
inc dl
mov byte [esp + edi - 0x4db111e], dl
dec ecx
inc edi
cmp ecx, 0x324eed0
jne 0x43acc0
lea esi, [esp + 8]
mov edx, esi
xor ecx, ecx
mov ebp, dword [esp]
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 + 0xa]
mov byte [ebp + 2], cl
add ebp, 3
jmp case.default.0x43ac90
mov dword [esp], ebp
mov dword [esp + 8], 0x23fcbae4
mov byte [esp + 0xc], 0x3c
mov dword [esp + 0xd], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 8]
lea esi, [ecx - 0x1fb9218c]
mov ebx, 0x1fb9218b
sub ebx, ecx
mov edx, ebx
and edx, 0x12882093
mov ebp, esi
and ebp, 0x60001c6c
or ebp, edx
xor ebp, edi
xor ebp, 0x92cee293
lea edx, [ebp*2]
not edx
add edx, ebp
and edx, esi
or ebp, ebx
not ebp
or ebp, edx
lea ebx, [ecx + edi]
add ebx, 0xe046de74
add ebp, ebp
sub ebx, ebp
add bl, 0xbc
mov byte [esp + ecx + 8], bl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 9
jb 0x43ad90
lea edx, [esp + 8]
mov ecx, 1
mov ebp, dword [esp]
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0xc]
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp case.default.0x43ac90
mov dword [esp + 8], 0xc9307230
mov byte [esp + 0xc], 0xe0
lea ecx, [esp + 0xc]
mov word [ecx + 5], 0
mov dword [ecx + 1], 0
xor ecx, ecx
mov edx, ecx
add dl, 0x29
xor dl, byte [esp + ecx + 8]
add dl, 0x33
mov byte [esp + ecx + 8], dl
mov edx, ecx
xor edx, 0xfffffffe
mov edi, ecx
or edi, 1
and edi, edx
mov edx, edi
and edx, 0xd
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
xor esi, 2
imul esi, edx
xor ecx, 1
add ecx, edi
add ecx, esi
cmp ecx, 0xb
jb 0x43ae40
lea edx, [esp + 8]
mov ecx, 1
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0xc]
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp case.default.0x43ac90
mov dword [esp + 8], 0x89d812cc
mov byte [esp + 0xc], 0x80
lea ecx, [esp + 0xc]
mov byte [ecx + 5], 0
mov dword [ecx + 1], 0
mov ecx, 0xa1
mov edi, 0x5e
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x99]
mov edx, ecx
or edx, ebx
not ebx
or ebx, edi
and ebx, edx
add bl, 0xdb
mov byte [esp + ecx - 0x99], bl
inc ecx
dec edi
cmp ecx, 0xab
jne 0x43aed0
lea edx, [esp + 8]
mov ecx, 1
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add ebp, 4
lea edx, [esp + 0xc]
xor ecx, ecx
mov edi, ebp
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
jmp case.default.0x43ac90
mov ebx, dword [esp + 0x2b4]
cmp ebx, 3
jbe 0x43b106
test bl, 1
je 0x43af56
mov eax, 0x43fbe2
mov edx, 0x43fbe2
mov edi, ebp
xor ecx, ecx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, ebp
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
add ebp, 2
mov ecx, ebx
and ecx, 8
mov eax, ebx
or eax, 8
imul eax, ecx
xor ecx, 8
mov edx, ebx
and edx, 0xfffffff7
imul edx, ecx
add eax, edx
mov esi, 0xffffffff
mov edi, 0xffffffff
cmp eax, 0x7ffffffe
ja 0x43b4f1
mov dword [esp], ebp
dec ebx
cmp ebx, 4
jae 0x43afaf
jmp 0x43b109
mov dword [esp], esi
mov ebx, ebp
dec ebx
cmp ebx, 3
jbe 0x43b109
mov ebp, ebx
lea eax, [ebx*8]
cmp eax, 0x7e
ja 0x43b080
mov dword [esp + 8], 0x11488244
mov word [esp + 0xc], 0x73c0
mov dword [esp + 0xe], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 8]
mov edx, ecx
and edx, 0xd
mov edi, ecx
xor edi, 0xa462debd
lea ebx, [edi + edx*2]
xor esi, 0xb00228d6
mov edx, ebx
and edx, 0xa00208d6
or edx, 0x2d54500
and ebx, 0x4209229
or ebx, 0xb29729d6
xor ebx, edx
mov edx, esi
and edx, ebx
add ebx, esi
add edx, edx
sub ebx, edx
add bl, 0x4f
mov byte [esp + ecx + 8], bl
mov edx, ecx
xor edx, 0x7ffffffe
mov esi, ecx
or esi, 1
and esi, edx
xor ecx, 1
lea ecx, [ecx + esi*2]
cmp ecx, 0xa
jb 0x43afe0
lea edx, [esp + 8]
mov esi, dword [esp]
mov edi, esi
mov ecx, 1
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 4]
lea edx, [esp + 0xc]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0xc]
mov byte [esi + 4], cl
mov byte [esi + 3], al
add esi, 5
jmp 0x43afa0
mov dword [esp + 8], 0xb9b0ce74
mov dword [esp + 0xc], 0x95262738
mov byte [esp + 0x10], 0x24
lea ecx, [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx + 1], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor edx, 0x74
mov esi, ecx
or esi, 0xb
and esi, edx
mov edx, ecx
xor edx, 0x8b
lea edx, [edx + esi*2]
xor dl, byte [esp + ecx + 8]
add dl, 0x49
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0x10
jne 0x43b0b0
lea edx, [esp + 8]
mov ebx, dword [esp]
mov edi, ebx
mov ecx, 2
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea esi, [ebx + 8]
lea edx, [esp + 0x10]
xor ecx, ecx
mov edi, esi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [ebx + 3], eax
jmp 0x43afa0
mov dword [esp], ebp
mov ebx, dword [esp + 0x2a8]
mov dword [esp + 8], 0x439ee238
lea ebp, [esp + 0xc]
mov byte [esp + 0xc], 0x64
mov word [esp + 0xd], 0
mov byte [esp + 0xf], 0
mov ecx, 0x3821e3e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x3821e3e0]
xor edx, ecx
add edx, 0xe7568c77
mov eax, edx
xor eax, 0xfe
or edx, 1
and eax, edx
add eax, edx
mov byte [esp + ecx - 0x3821e3e0], al
inc ecx
cmp ecx, 0x3821e3f0
jne 0x43b140
lea eax, [esp + 8]
mov edx, dword [esp]
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 + 0x8f], 0xc3fc8948
mov dword [esp + 0x8c], 0x48d2ff41
mov dword [esp + 0x80], 0xba49c031
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x80]
mov edi, esi
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x14]
lea eax, [esp + 0x90]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
movzx eax, byte [esp + 0x92]
mov byte [edx + 0x16], al
lea ecx, [esp + 0x94]
mov eax, ecx
neg eax
lea ebp, [edx + eax]
add ebp, 0x17
sub edx, ecx
add edx, 0x70
mov dword [esp + 0x6c], edx
xor eax, eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x2c2d2e2f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 8
xor cl, byte [esp + eax + 8]
add cl, 0xd8
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x43b230
mov esi, dword [esp + 8]
mov eax, dword [0x4490f4]
test eax, eax
je 0x43b2a0
xor ecx, ecx
mov edx, dword [0x4490f8]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3e416e49
je 0x43b270
inc ecx
cmp eax, ecx
jne 0x43b260
jmp 0x43b2a0
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43b2a0
lea ecx, [esp + 0x6c]
lea edx, [esp + 4]
push 0x40
push 0x3000
push ecx
push 0
push edx
push 0xffffffffffffffff
push 0x18
push eax
push dword [0x4490fc]
call fcn.00438910
add esp, 0x24
mov esi, eax
test esi, esi
js 0x43b4c0
mov dword [esp + 8], 0xdd4be0d5
mov dword [esp + 0xc], 0x6bffe2df
mov dword [esp + 0x10], 0x775aa4e7
mov dword [esp + 0x14], 0x4b4a4d4c
mov dword [esp + 0x18], 0xb106d6e0
mov dword [esp + 0x1c], 0xda5a71db
mov dword [esp + 0x20], 0x43801a7e
mov dword [esp + 0x24], 0x5b5a5d93
mov dword [esp + 0x28], 0x456e47c1
mov dword [esp + 0x2c], 0xe9525554
mov dword [esp + 0x30], 0x7ebc78c4
mov dword [esp + 0x34], 0x88c671b3
mov dword [esp + 0x38], 0x3f788c8a
mov dword [esp + 0x3c], 0xdfe6b224
mov dword [esp + 0x40], 0xcee6d723
mov dword [esp + 0x44], 0x1139967c
mov dword [esp + 0x48], 0xeb6de99b
mov dword [esp + 0x4c], 0x33cd29c8
mov dword [esp + 0x50], 0xcb973130
mov dword [esp + 0x54], 0x5593d5f0
mov dword [esp + 0x58], 0x46de49e9
mov dword [esp + 0x5c], 0xf701e532
lea edx, [esp + 0x60]
mov dword [esp + 0x60], 0x1fc
mov eax, 0xf3415416
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0xcbeabf2]
mov ecx, ebx
and ecx, eax
add cl, cl
sub bl, cl
movzx ecx, bl
add ecx, eax
add cl, 0x92
mov byte [esp + eax + 0xcbeabf2], cl
inc eax
cmp eax, 0xf3415472
jne 0x43b370
mov eax, dword [esp + 4]
lea esi, [esp + 8]
mov edi, eax
mov ecx, 0x16
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [eax + 0x58]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
lea edi, [eax + 0x59]
movzx ecx, byte [esp + 0x60]
mov byte [eax + 0x58], cl
mov ebx, ebp
mov ecx, ebp
shr ecx, 2
lea edx, [esp + 0x94]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebp
and ecx, 0xfffffffc
add eax, ecx
add eax, 0x59
lea edx, [esp + ecx]
add edx, 0x94
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x43b40b
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
mov eax, dword [esp + 4]
mov dword [esp + 8], 0x898a8b2b
mov byte [esp + 0xc], 0
mov ecx, 0x7b69e8a3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x7b69e89b]
xor edx, ecx
mov esi, edx
xor esi, 0x30
and edx, 0x4f
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx - 0x7b69e89b], dl
inc ecx
cmp ecx, 0x7b69e8a8
jne 0x43b430
mov ecx, dword [esp + 8]
add ecx, eax
push dword [esp + 0x2b0]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x68], 0
mov dword [esp + 8], 0x2c2d2e2f
xor eax, eax
nop
nop
mov ecx, eax
add cl, 8
xor cl, byte [esp + eax + 8]
add cl, 0xd8
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x43b480
mov eax, dword [0x4490f4]
test eax, eax
je 0x43b4f1
mov ecx, dword [esp + 8]
xor edx, edx
mov ebx, dword [0x4490f8]
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x16194952
je 0x43b4c7
inc edx
cmp eax, edx
jne 0x43b4b0
jmp 0x43b4f1
mov edi, esi
sar edi, 0x1f
jmp 0x43b4f1
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43b4f1
lea ecx, [esp + 0x68]
lea edx, [esp + 4]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x4490fc]
call fcn.00438910
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x294
pop esi
pop edi
pop ebx
pop ebp
ret 0x10