Function at 0x43f663
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x49c10d
call fcn.0049b920
sub esp, 0x94
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x28], 0xfffffffc
xor ebx, ebx
mov dword [ebp - 0x18], ebx
jmp 0x43f6a4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x88], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43f693
mov dword [ebp - 0x14], ebx
jmp 0x43f6b9
mov dword [ebp - 0x28], 0xac70c309
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x43f6af
mov dword [ebp - 0x14], 0xfffffffe
jmp 0x43f6da
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x43f6d7
push ebx
call dword [0xaaa418]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jge 0x43f6c8
mov dword [ebp - 0x38], esi
mov dword [esi], ebx
xor edi, edi
inc edi
cmp dword [esi], 3
jg 0x43fbeb
mov dword [ebp - 0x14], 0x566a9272
mov dword [ebp - 0x18], 0xe7ad53a
mov dword [ebp - 0x24], 0x84edc02
mov dword [ebp - 0x24], 0x314b8123
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x24], 0xfc5
cmp dword [ebp - 0x24], 0x121c
jle 0x43f770
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x7c]
call fcn.00401f5e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43f744
mov eax, dword [eax]
push eax
call fcn.00484c7a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x7c]
call fcn.004014ab
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x68cf
jl 0x43f72b
inc esi
cmp esi, 0x6520
jl 0x43f726
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0xdd4
jge 0x43f78a
push 0xa959ec
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x43f7b9
mov dword [ebp - 0x1c], ebx
jmp 0x43f7c8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x58], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x43f7be
cmp dword [ebp - 0x14], ebx
jne 0x43f817
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, 0xc8e8427a
sub ecx, eax
je 0x43f7e9
cmp dword [ebp - 0x14], ebx
mov edx, edi
jne 0x43f7eb
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setne cl
sub ecx, 0xfffffff6
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x14]
mov edx, ebx
je 0x43f819
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x14]
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x14]
jl 0x43f846
cmp dword [ebp - 0x18], ebx
mov ecx, ebx
je 0x43f848
mov ecx, edi
xor eax, eax
cmp ecx, 0x260d
setl al
mov ecx, 0x86485466
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
dec eax
neg eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x28], 0x66f4
cmp dword [ebp - 0x28], 0x6905
jle 0x43f8fd
push ebx
call dword [0xaaa220]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0x3cfc
mov ecx, ebx
mov dword [ebp - 0x24], ecx
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ebx
mov eax, esi
cdq
idiv ecx
mov edi, edx
mov esi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc esi
cmp esi, 0x676e
jl 0x43f8b4
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x5792
mov esi, dword [ebp - 0x1c]
jl 0x43f8a8
mov esi, dword [ebp - 0x14]
add dword [ebp - 0x1c], esi
dec dword [ebp - 0x18]
jne 0x43f8a0
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0xc8
jl 0x43f896
xor edi, edi
inc edi
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ebx
jmp 0x43f90c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43f902
mov dword [ebp - 4], 2
cmp dword [ebp - 0x28], 0x63ff
jge 0x43f933
push 0xa95a18
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x43f962
mov dword [ebp - 0x14], 0x25b0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x34], 0xcaea0a9f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x14]
sub eax, 0x3e62
push 0
pop eax
setns al
sub eax, 0x2e349581
je 0x43f9af
cmp dword [ebp - 0x14], ebx
mov eax, edi
jne 0x43f9b1
mov eax, ebx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x18]
jg 0x43f9cd
cmp dword [ebp - 0x14], ebx
mov ecx, edi
jne 0x43f9cf
mov ecx, ebx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x43f9f5
push 0x1fdc
push ebx
call dword [0xaaa274]
mov dword [ebp - 0x24], 0x1110
cmp dword [ebp - 0x24], 0x1461
jle 0x43fa7c
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x18], eax
mov esi, ebx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00401f5e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x43fa36
mov eax, dword [eax]
push eax
call fcn.00484c7a
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xa0]
call fcn.004014ab
inc esi
cmp esi, 0x5c7c
mov eax, dword [ebp - 0x18]
jl 0x43fa1c
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x62eb
mov eax, dword [ebp - 0x1c]
jl 0x43fa0f
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x3d61
jl 0x43fa0a
call dword [0xaaa3c4]
mov esi, dword [ebp - 0x2c]
mov byte [ebp - 0x2d], bl
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x1059
jge 0x43fa9a
push 0xa95a74
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x43fac9
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x1c], 0x16
jmp 0x43faee
cmp byte [ebp - 0x1d], 0
je 0x43faeb
push ebx
push 0x18f2
call dword [0xaaa090]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffffe
mov byte [ebp - 0x1d], bl
jne 0x43fad9
cmp byte [ebp - 0x1d], 0
je 0x43fb0a
push ebx
push ebx
push 0xf69
call dword [0xaaa3f0]
cmp byte [ebp - 0x2d], 0
je 0x43fbe4
push 2
lea ecx, [ebp - 0x44]
call fcn.00417e08
mov dword [ebp - 0x18], 0x8d4081c2
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x14], ebx
jmp 0x43fb3d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x43fb2d
mov dword [ebp - 0x14], ebx
jmp 0x43fb56
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0x13923cc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x43fb48
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], ebx
jl 0x43fbd4
mov dword [ebp - 0x24], 0xffffffff
cmp dword [ebp - 0x18], ebx
jne 0x43fb8b
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, dword [ecx + esi*4]
setl dl
mov eax, dword [ebp - 0x44]
cmp dword [eax], edx
mov dword [ebp - 0x28], ebx
jg 0x43fb8e
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
xor ecx, ecx
mov edx, dword [ebp - 0x44]
cmp dword [edx + eax*4], 0xb593
setl cl
xor ebx, ebx
cmp ecx, dword [ebp - 0x28]
setge bl
sub ebx, dword [edx + esi*4]
neg ebx
sbb ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp ebx, eax
setl cl
mov dword [ebp - 0x60], ecx
dec dword [ebp - 0x18]
push 0
pop ebx
jns 0x43fb64
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x44]
call fcn.004181c2
push ebx
push ebx
call dword [0xaaa0a4]
inc dword [esi]
jmp 0x43f6e8
push 2
lea ecx, [ebp - 0x50]
call fcn.00417e08
mov dword [ebp - 0x18], 0x3532fe22
mov dword [ebp - 0x1c], 0x8bd4dfbd
mov dword [ebp - 0x1c], ebx
jmp 0x43fc18
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x43fc08
mov dword [ebp - 0x18], ebx
jmp 0x43fce4
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x43fcd8
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + ecx*4]
dec eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0xfffffff7
cmp dword [ebp - 0x28], ebx
jne 0x43fc68
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0x9744
setg cl
add ecx, dword [ebp - 0x2c]
mov edx, ebx
je 0x43fc6a
mov edx, edi
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
imul eax, edx
xor edx, edx
cmp eax, dword [ecx + esi*4]
setge dl
mov eax, dword [ebp - 0x50]
imul edx, dword [eax]
test edx, edx
jne 0x43fc8f
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x43fc91
mov ecx, edi
mov edx, dword [ebp - 0x14]
add ecx, 0xfff7
mov eax, dword [ebp - 0x50]
cmp ecx, dword [eax + edx*4]
jl 0x43fca5
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
inc edx
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x14]
jl 0x43fccf
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x43fc38
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x43fc26
lea ecx, [ebp - 0x50]
call fcn.004181c2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret