Function at 0x43952e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push dword [edi + 0x11c]
call fcn.00428cb0
cmp dword [edi + 0x154], 0
pop ecx
jne 0x439562
push edi
push 0x41b290
call fcn.00428fa0
pop ecx
pop ecx
mov dword [edi + 0x154], eax
lea esi, [ebp - 0x14]
call fcn.00424fc8
lea esi, [ebp - 8]
call fcn.00424fc8
mov eax, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00434f2c
mov ebx, dword [section.UPX0]
pop ecx
pop ecx
mov ecx, dword [0x448688]
mov esi, 0x404e92
push esi
mov dword [ecx + 0x94], eax
call ebx
mov eax, dword [0x448688]
cmp dword [eax + 0x94], 0
jne 0x4395b5
call fcn.00438102
push esi
call ebx
jmp 0x4396ee
push esi
call ebx
mov eax, dword [0x448688]
add eax, 0x150
push eax
call fcn.004273f9
pop ecx
push dword [ebp - 8]
lea esi, [ebp - 4]
call fcn.0042cca1
mov dword [ebp - 0x10], eax
mov eax, dword [0x448688]
pop ecx
add eax, 0x150
push eax
call fcn.004273d6
xor esi, esi
pop ecx
cmp dword [ebp - 0x10], esi
je 0x4396d9
cmp dword [ebp - 4], esi
je 0x4396d9
push 4
push 0x3000
push dword [ebp - 4]
call fcn.00429360
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x4396e5
mov dword [ebp - 0x18], esi
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
cld
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x18], edi
mov eax, dword [0x448688]
add eax, 0x148
push 0
push eax
call fcn.00428de0
push dword [ebp - 4]
lea eax, [ebp - 0x18]
push dword [ebp - 0xc]
push eax
call fcn.0042e064
mov esi, dword [0x448688]
add esp, 0x14
add esi, 0xa0
mov ebx, eax
call fcn.00425388
lea esi, [ebp - 0x18]
call fcn.00424fe3
push dword [ebp - 4]
mov edi, dword [ebp - 0xc]
push edi
call fcn.0043657c
mov esi, dword [0x448688]
pop ecx
pop ecx
add esi, 0x98
lea ebx, [ebp - 0x14]
call fcn.00425388
mov esi, dword [0x448688]
add esi, 0x9c
lea ebx, [ebp - 8]
call fcn.00425388
mov eax, dword [0x448688]
mov ecx, dword [ebp - 4]
push 0x404e92
mov dword [eax + 0xa8], ecx
mov dword [eax + 0xa4], edi
call dword [section.UPX0]
mov eax, dword [0x448688]
add eax, 0x148
push 1
push eax
call fcn.00428de0
mov edi, dword [ebp + 8]
pop ecx
pop ecx
jmp 0x4396e5
call fcn.00438102
push 0x404e92
call ebx
push dword [ebp - 0x10]
call fcn.0040a2ae
pop ecx
mov eax, dword [0x448688]
and dword [ebp - 0x18], 0
cmp dword [eax + 0xa4], 0
je 0x439763
add eax, 0x150
push eax
call fcn.004273f9
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0xa8]
push dword [eax + 0xa4]
call fcn.0043657c
mov eax, dword [0x448688]
mov edx, dword [eax + 0xa4]
call fcn.00426eb6
mov dword [ebp - 0x18], eax
mov eax, dword [0x448688]
push dword [eax + 0xa8]
push dword [eax + 0xa4]
call fcn.0043657c
mov eax, dword [0x448688]
add eax, 0x150
push eax
call fcn.004273d6
mov eax, dword [0x448688]
add esp, 0x14
cmp dword [ebp + 0xc], 1
mov dword [ebp - 0x58], 0x1710022e
mov dword [ebp - 0x54], 0xa431106
mov dword [ebp - 0x50], 0x10464310
mov dword [ebp - 0x4c], 0x10464b43
mov dword [ebp - 0x48], 0x1108134f
mov dword [ebp - 0x44], 0x4a16465e
mov byte [ebp - 0x40], 0x63
jne 0x4397b8
push 0x4056ac
lea esi, [ebp + 8]
call fcn.00424f68
mov eax, dword [edi]
mov ecx, esi
push ecx
mov ecx, edi
call dword [eax + 8]
call fcn.00424fe3
mov eax, dword [0x448688]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
xor byte [ebp - 0x58], 0x63
je 0x4397cd
lea ecx, [ebp - 0x58]
inc ecx
xor byte [ecx], 0x63
jne 0x4397c7
mov ecx, dword [ebp - 0x18]
mov ebx, dword [edi]
and ecx, 7
push ecx
push edx
push eax
lea eax, [ebp - 0x58]
push eax
lea esi, [ebp + 8]
call fcn.00424fc8
call fcn.0042549a
add esp, 0x10
push eax
mov ecx, edi
call dword [ebx + 8]
call fcn.00424fe3
lea esi, [edi + 0x190]
mov eax, edi
call fcn.0043c577
push edi
push 0x41b8ff
call fcn.00428fa0
mov dword [edi + 0x150], eax
mov eax, dword [0x448688]
cmp dword [eax + 8], 1
pop ecx
pop ecx
jne 0x439835
push edi
push 0x41b3b4
call fcn.00428fa0
pop ecx
pop ecx
mov dword [edi + 0x15c], eax
push edi
push 0x43c69f
call fcn.00428fa0
cmp dword [edi + 0x158], 0
pop ecx
pop ecx
mov dword [edi + 0x160], eax
jne 0x439864
push edi
push 0x41b81c
call fcn.00428fa0
pop ecx
pop ecx
mov dword [edi + 0x158], eax
push edi
push 0x41ce76
call fcn.00428fa0
pop ecx
pop ecx
lea esi, [ebp - 8]
mov dword [edi + 0x180], eax
call fcn.00424fe3
lea esi, [ebp - 0x14]
call fcn.00424fe3
pop edi
pop esi
pop ebx
leave
ret 8