Function at 0x429fd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x989b9a9d
mov word [esp + 0x18], 0
mov ebp, 0xad5ae75b
mov esi, 0x52a518a4
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp + 0x52a518b9]
mov edx, ebp
and edx, ebx
add edx, edx
sub edx, ebx
add edx, esi
and edx, ebp
lea edi, [edx + edx]
lea ecx, [ebx + ebp]
sub ecx, edi
and cl, 0x38
add cl, bl
sub ebx, edi
add ebx, ebp
mov eax, ebx
xor al, 0x38
add al, cl
and bl, 0xc7
sub al, bl
add dl, dl
sub al, dl
movzx eax, al
add eax, ebp
inc al
mov byte [esp + ebp + 0x52a518b9], al
inc ebp
dec esi
cmp ebp, 0xad5ae761
jne 0x42a000
mov eax, dword [esp + 0x14]
mov ecx, dword [0x44fa10]
test ecx, ecx
je 0x42a0a4
xor edx, edx
mov esi, dword [0x44fa14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x42a080
inc edx
cmp ecx, edx
jne 0x42a070
jmp 0x42a0a4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42a0a4
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 5
push 4
push dword [0x44fa18]
push ecx
call fcn.00440700
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x42a160
push dword [esp + 0x10]
call fcn.0043d3e0
add esp, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0x989b9a9d
mov word [esp + 0x18], 0
mov esi, 0xad5ae75b
mov edi, 0x52a518a4
movzx ecx, byte [esp + esi + 0x52a518b9]
mov ebx, esi
and ebx, ecx
add ebx, ebx
sub ebx, ecx
add ebx, edi
and ebx, esi
lea ebp, [ebx + ebx]
lea edx, [esi + ecx]
sub edx, ebp
and dl, 0x38
add dl, cl
sub ecx, ebp
add ecx, esi
mov eax, ecx
xor al, 0x38
add al, dl
and cl, 0xc7
sub al, cl
add bl, bl
sub al, bl
movzx eax, al
add eax, esi
inc al
mov byte [esp + esi + 0x52a518b9], al
inc esi
dec edi
cmp esi, 0xad5ae761
jne 0x42a0e0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x44fa10]
test ecx, ecx
je 0x42a167
xor edx, edx
mov edi, dword [0x44fa14]
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xc85f7986
je 0x42a16d
inc edx
cmp ecx, edx
jne 0x42a150
jmp 0x42a18f
xor ebx, ebx
jmp 0x42a49b
mov ebp, dword [esp + 4]
jmp 0x42a18f
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
je 0x42a18f
push 0
push dword [esp + 0xc]
push ebp
push 5
push 4
push dword [0x44fa18]
push ecx
call fcn.00440700
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42a492
mov esi, dword [ebp]
mov eax, esi
mov ecx, ebp
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
lea edx, [ecx + eax]
mov eax, dword [ecx + eax]
mov ecx, edx
test eax, eax
jne 0x42a1b0
mov eax, edi
and eax, 0xfffffefb
mov ecx, edi
and ecx, 0x104
or edi, 0x104
imul edi, ecx
xor ecx, 0x104
imul ecx, eax
add edi, ecx
jns 0x42a1e9
mov edi, 0xffffffff
jmp 0x42a1eb
add edi, edi
push edi
call fcn.0040c4e0
add esp, 4
mov ebp, eax
mov dword [esp], eax
mov eax, dword [esp + 4]
jmp 0x42a212
mov edi, ebp
add eax, esi
lea ebp, [edi + 2]
mov word [edi], 0xa
mov esi, dword [eax]
test esi, esi
je 0x42a243
mov ecx, dword [eax + esi + 0x3c]
movzx edx, word [ecx]
test dx, dx
je 0x42a200
add ecx, 2
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], dx
add edi, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x42a230
jmp 0x42a202
xor ebx, ebx
mov eax, dword [esp]
cmp ebp, eax
je 0x42a485
mov word [ebp], 0
movzx ecx, word [eax]
test cx, cx
mov ebx, 0
je 0x42a2a4
xor ebx, ebx
mov eax, dword [esp]
jmp 0x42a27e
add ebx, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x42a2a4
cmp eax, ebp
jae 0x42a2a4
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x42a270
mov edx, ecx
jmp 0x42a270
lea eax, [ebx + 1]
mov dword [esp + 0x28], eax
push eax
call fcn.0040c4e0
add esp, 4
mov edx, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle 0x42a3a5
mov edx, dword [esp + 0xc]
cmp dword [esp], ebp
jae 0x42a3a5
mov edx, dword [esp + 0xc]
lea eax, [edx + ebx]
mov dword [esp + 8], eax
add dword [esp + 0x28], edx
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp]
test cx, cx
je 0x42a3a5
cmp cx, 0x7f
ja 0x42a310
mov byte [edx], cl
mov esi, 1
jmp 0x42a390
mov eax, edx
not eax
add eax, dword [esp + 0x28]
movzx esi, cx
cmp eax, 2
jb 0x42a350
cmp esi, 0x7ff
ja 0x42a350
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [edx], al
and cl, 0x3f
or cl, 0x80
mov byte [edx + 1], cl
mov esi, 2
jmp 0x42a390
mov dword [esp + 0x2c], esi
xor esi, esi
cmp eax, 3
jb 0x42a390
mov esi, dword [esp + 0x2c]
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edx], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edx + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edx + 2], cl
mov esi, 3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, esi
cmp edx, dword [esp + 8]
jae 0x42a3a5
lea eax, [ebp + 2]
cmp ebp, edi
mov ebp, eax
jb 0x42a2f0
mov dword [esp + 8], ebx
mov byte [edx], 0
mov dword [esp + 0x14], 0x90a5a380
mov dword [esp + 0x18], 0xb2bdbeb1
mov dword [esp + 0x1c], 0xa3a67fbb
mov word [esp + 0x20], 0x25a8
mov dword [esp + 0x22], 0
mov word [esp + 0x26], 0
mov eax, 0xf0c57e8c
mov ecx, 0xf3a8173
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xf3a8188]
lea edi, [eax + 0x10000000]
mov ebp, ecx
or ebp, edx
lea esi, [ecx - 0xf3a8100]
and esi, edx
xor esi, ebp
and esi, edi
mov edi, esi
and edi, 0xbd
mov ebp, esi
and ebp, 2
mov ebx, esi
or ebx, 0xfffffffd
inc ebx
imul ebx, edi
or esi, 2
imul esi, ebp
sub ebx, esi
add edx, eax
lea esi, [ebx + edx]
add esi, 0x4c248743
mov edi, esi
and edi, 1
and edx, 1
and esi, 0xfe
or esi, edx
lea edx, [esi + edi*2]
mov byte [esp + eax + 0xf3a8188], dl
inc eax
dec ecx
cmp eax, 0xf0c57ea0
jne 0x42a3f0
lea eax, [esp + 0x14]
mov ecx, dword [esp + 0x44]
push dword [esp + 8]
mov esi, dword [esp + 0x10]
push esi
push eax
call fcn.0040cf40
mov ebx, eax
push esi
call fcn.0040c4f0
add esp, 4
mov ebp, dword [esp + 4]
mov eax, dword [esp]
jmp 0x42a489
mov ebp, dword [esp + 4]
push eax
call fcn.0040c4f0
add esp, 4
push ebp
call fcn.0043d420
add esp, 4
mov eax, ebx
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret