Function at 0x439db0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x80]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], 0x100000
mov dword [esp + 0x18], 0
mov dword [esp + 0x3c], 0xd8dbdac5
mov byte [esp + 0x40], 0
mov eax, 0xcf
mov ecx, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x93]
lea esi, [eax - 0x80]
mov edx, eax
and edx, edi
mov ebx, ecx
and ebx, 0x10
and esi, 0x4f
or esi, ebx
xor esi, edi
xor esi, 0x90
not edx
and edx, esi
add dl, 0xf5
mov byte [esp + eax - 0x93], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x439e10
mov eax, dword [esp + 0x3c]
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x439e9e
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x439e70
inc edx
cmp ecx, edx
jne 0x439e60
jmp 0x439e9e
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x439e9e
lea eax, [esp + 0x20]
lea edx, [esp + 0x18]
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x24
test eax, eax
js 0x43a64a
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 4], 0x83838180
mov byte [esp + 8], 0
mov eax, 0x33a0a161
mov ecx, 0xcc5f5e9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x33a0a15d]
lea edx, [esi + esi]
not edx
add edx, esi
or edx, ecx
lea edi, [ecx + 0x33a0a200]
and edi, esi
add edx, eax
or edx, edi
mov esi, edx
and esi, 0x1f
xor edx, 0x1f
lea edx, [edx + esi*2]
inc dl
mov byte [esp + eax - 0x33a0a15d], dl
inc eax
dec ecx
cmp eax, 0x33a0a166
jne 0x439f00
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
cmp eax, 0x7ffffffe
ja 0x43a5a5
mov dword [esp + 0x14], 0
mov dword [esp], 0
mov dword [esp + 0x10], 0
jmp 0x439f97
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [esp]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
cmp eax, 0x7fffffff
jae 0x43a5a5
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0x10
mov edx, 0xcf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx - 0xcb]
lea esi, [edx - 0x80]
mov ebx, edx
and ebx, edi
mov ebp, eax
and ebp, 0x10
and esi, 0x4f
or esi, ebp
xor esi, edi
xor esi, 0x90
not ebx
and ebx, esi
add bl, 0xf5
mov byte [esp + edx - 0xcb], bl
dec eax
inc edx
cmp eax, 0xb
jne 0x439fc0
mov eax, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x43a050
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xc18bc4ba
je 0x43a020
inc esi
cmp edx, esi
jne 0x43a010
jmp 0x43a050
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x43a050
push 0
push 0x1c
lea eax, [esp + 0x44]
push eax
push 0
push dword [esp + 0x38]
push ecx
push 0x18
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x24
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xbfffffff
ja 0x43a5a5
test eax, eax
js 0x439f80
cmp dword [esp + 0x4c], 0x1000
jne 0x439f80
test byte [esp + 0x50], 0x66
je 0x439f80
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jbe 0x43a20a
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov ecx, 0xcf
mov edx, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0xcb]
lea esi, [ecx - 0x80]
mov ebx, ecx
and ebx, edi
mov ebp, edx
and ebp, 0x10
and esi, 0x4f
or esi, ebp
xor esi, edi
xor esi, 0x90
not ebx
and ebx, esi
add bl, 0xf5
mov byte [esp + ecx - 0xcb], bl
inc ecx
dec edx
cmp ecx, 0xd4
jne 0x43a0b0
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x43a13e
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44aef4]
nop
cmp dword [edi + esi*8], 0x6dbc3610
je 0x43a110
inc esi
cmp ecx, esi
jne 0x43a100
jmp 0x43a13e
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x43a13e
push 0x8000
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x20]
push eax
push 0xffffffffffffffff
push 0x10
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x1c
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov ecx, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xcb]
lea esi, [eax - 0x80]
mov edx, eax
and edx, edi
mov ebx, ecx
and ebx, 0x10
and esi, 0x4f
or esi, ebx
xor esi, edi
xor esi, 0x90
not edx
and edx, esi
add dl, 0xf5
mov byte [esp + eax - 0xcb], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x43a170
mov eax, dword [esp + 4]
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x43a1fe
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43a1d0
inc edx
cmp ecx, edx
jne 0x43a1c0
jmp 0x43a1fe
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43a1fe
push 4
push 0x3000
lea eax, [esp + 0x28]
push eax
push 0
lea eax, [esp + 0x28]
push eax
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x24
test eax, eax
js 0x43a5a5
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov esi, 0x10
mov edi, 0xcf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0xcb]
lea ebp, [edi - 0x80]
mov ebx, edi
and ebx, edx
mov eax, esi
and eax, 0x10
and ebp, 0x4f
or ebp, eax
xor ebp, edx
xor ebp, 0x90
not ebx
and ebx, ebp
add bl, 0xf5
mov byte [esp + edi - 0xcb], bl
dec esi
inc edi
cmp esi, 0xb
jne 0x43a240
mov eax, dword [esp + 4]
mov edi, dword [0x44aef0]
test edi, edi
je 0x43a2d0
xor ebx, ebx
mov ebp, dword [0x44aef4]
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0xe6c7f7c6
je 0x43a2a1
inc ebx
cmp edi, ebx
jne 0x43a290
jmp 0x43a2d0
mov edi, dword [ebp + ebx*8 + 4]
cmp edi, eax
je 0x43a2d0
lea eax, [esp + 0x68]
push eax
push ecx
push dword [esp + 0x2c]
push dword [esp + 0x34]
push dword [esp + 0x2c]
push 0x14
push edi
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x20
nop
nop
nop
nop
test eax, eax
jns 0x43a2df
cmp eax, 0x8000000d
jne 0x439f80
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x74]
push dword [esp + 0x28]
lea eax, [esp + 0x18]
push eax
call fcn.0043a660
add esp, 0x18
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], ecx
cmp eax, ecx
je 0x439f66
mov dword [esp + 0x58], eax
mov edi, eax
mov eax, dword [esp + 0x10]
mov ebp, eax
mov ebx, dword [esp]
jmp 0x43a348
mov ebx, dword [esp]
mov dword [ebx + ebp], edx
add eax, 4
add edi, 4
mov ebp, eax
cmp edi, dword [esp + 0x24]
je 0x43a565
mov edx, dword [edi]
add edx, dword [esp + 0x28]
sub edx, dword [esp + 0x18]
mov ecx, ebp
sub ecx, ebx
mov esi, ebx
not esi
cmp ebp, dword [esp + 0x14]
jne 0x43a517
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], edx
mov edx, ecx
sar edx, 2
lea eax, [edx + 1]
mov ebx, edx
shr ebx, 1
add ebx, edx
cmp ebx, eax
mov ebp, ecx
ja 0x43a386
mov ebx, eax
mov eax, ebx
and eax, 0xfffffffb
mov ecx, ebx
and ecx, 4
mov edx, ebx
mov dword [esp + 0x64], ebx
or edx, 4
imul edx, ecx
xor ecx, 4
imul ecx, eax
add edx, ecx
push edx
call fcn.00409730
add esp, 4
mov dword [esp], eax
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x43a4fd
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x10]
mov edi, eax
not edi
and edi, ebx
mov ecx, esi
and ecx, eax
mov edx, ecx
sub edx, edi
cmp dword [esp], ebx
jbe 0x43a49f
lea eax, [ebx + edx]
cmp eax, dword [esp]
jbe 0x43a49f
test edx, edx
je 0x43a4ec
mov ebx, edx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x14]
add eax, edx
dec eax
mov ecx, dword [esp]
add ecx, edx
dec ecx
and edx, 7
je 0x43a43c
mov dword [esp + 0x5c], edi
mov dword [esp + 0x2c], ebp
mov ebp, ebx
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
dec edi
cmp edx, edi
jne 0x43a420
add eax, edi
add ecx, edi
mov ebx, ebp
add ebx, edi
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x5c]
sub edi, dword [esp + 0x30]
cmp edi, 0xfffffff8
ja 0x43a4ec
neg ebx
xor edi, edi
nop
nop
nop
movzx edx, byte [eax + edi]
mov byte [ecx + edi], dl
movzx edx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], dl
movzx edx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], dl
movzx edx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], dl
movzx edx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], dl
movzx edx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], dl
movzx edx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], dl
movzx edx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], dl
add edi, 0xfffffff8
cmp ebx, edi
jne 0x43a450
jmp 0x43a4ec
mov ecx, edx
shr ecx, 2
mov eax, ebx
mov dword [esp + 0x30], esi
mov esi, ebp
mov ebp, dword [esp]
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
lea edi, [eax + ebp]
mov ebp, esi
mov esi, dword [esp + 0x30]
add eax, ebx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov dword [esp + 0x2c], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test dl, 1
je 0x43a4ec
and edx, 2
movzx eax, byte [eax + edx]
mov ecx, dword [esp + 0x2c]
mov byte [ecx + edx], al
mov ebx, dword [esp + 0x14]
push ebx
call fcn.00409740
add esp, 4
mov edi, dword [esp + 0x60]
mov eax, dword [esp]
mov ecx, dword [esp + 0x64]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x14], ecx
add eax, ebp
mov edx, dword [esp + 0x1c]
mov ecx, ebp
mov ebp, dword [esp + 0x10]
xor ebx, ebp
and esi, ebp
add esi, esi
sub esi, ebx
cmp esi, ecx
mov ebp, esi
jae 0x43a330
mov dword [esp + 0x1c], edx
mov esi, dword [esp]
lea edx, [esi + ebp]
mov dword [esp + 0x10], eax
lea eax, [esi + ebp]
add eax, 4
mov esi, edx
xor ecx, ecx
mov ebx, edi
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, eax
mov eax, dword [esp + 0x10]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edx, dword [esp + 0x1c]
mov edi, ebx
jmp 0x43a330
mov edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], edx
mov dword [eax + 4], edx
mov edx, dword [esp]
mov dword [eax], edx
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x439f80
cmp eax, dword [esp + 0x24]
je 0x439f80
push eax
call fcn.00409740
add esp, 4
jmp 0x439f80
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov ecx, 0x10
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xcb]
lea esi, [eax - 0x80]
mov edx, eax
and edx, edi
mov ebx, ecx
and ebx, 0x10
and esi, 0x4f
or esi, ebx
xor esi, edi
xor esi, 0x90
not edx
and edx, esi
add dl, 0xf5
mov byte [esp + eax - 0xcb], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x43a5c0
mov eax, dword [0x44aef0]
test eax, eax
je 0x43a64a
mov ecx, dword [esp + 4]
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
nop
cmp dword [esi + edx*8], 0x6dbc3610
je 0x43a620
inc edx
cmp eax, edx
jne 0x43a610
jmp 0x43a64a
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43a64a
lea ecx, [esp + 0x38]
lea edx, [esp + 0x18]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x1c
mov eax, dword [esp + 0x80]
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10