Function at 0x4a45b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebx, 0x46e372
mov ebx, 0x453f6a
push 0x21716948
pushf
push ebx
adc ebx, edi
xor ebx, edi
lea ebx, [esp + 0x79]
lea ebx, [ecx + ebx - 0x79]
sub ebx, ecx
lea ebx, [ecx + ebx + 6]
sub ebx, ecx
push ecx
add ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x38]
lea ecx, [edx + 0x488634]
sub ecx, edx
mov dword [ebx], ecx
pop ecx
pop ebx
popf
adc ebx, ebx
pop ebx
lea esi, [ebp + esi + 0x33]
push ecx
push ebx
push ebp
push 0x6d316d3a
pushf
push ebp
lea ebp, [esp + esi + 0x54]
sub ebp, esi
lea ebp, [ebp + esi - 0x54]
sub ebp, esi
lea ebp, [ecx + ebp + 6]
sub ebp, ecx
push ecx
lea ecx, [edx - 0xf20e1cb]
sub ecx, edx
push ecx
pop dword [ebp]
pop ecx
pop ebp
popf
pop ecx
xchg ecx, ebp
ror ebp, 0xc3
xchg ebp, ebx
add ebx, 0xffffffa9
lea ecx, [edx - 0x40]
mov ecx, ebx
add ecx, 0x41e41c9d
lea esi, [esi + ecx*2 + 0x34]
lea esi, [ebx + esi - 0x34]
sub esi, ebx
sub esi, ecx
pop ebp
pop ebx
pop ecx
lea esi, [ebp + esi - 0x77]
push edx
push ebx
push ebp
lea edx, [ecx + ebp + 0x4f588015]
sub edx, ecx
sub edx, ebp
sar ebp, 0xf0
or ebp, 0x522932fc
mov ebp, edx
add ebp, 0xb0a77fb7
neg ebp
lea ebx, [ecx + ebx + 0x3aaffdf8]
push esi
push edi
push edx
push 0x7b13ca12
pop edx
add edx, 0x8dd489a3
push edx
mov edi, 0x497a18
and edi, eax
pop edi
sub edi, 0x4357d5d1
neg edi
or esi, 0xffffffef
or esi, 0xffffff8b
push edi
add esi, 0xb5ab77e6
pop esi
add esi, 0xffffff9e
xchg esi, edx
sub ebx, edx
pop edx
pop edi
pop esi
sub ebx, ecx
mov ebx, ebp
sub ebx, 0x10
push ebx
or edx, 0x238da9bf
pop edx
xor edx, 0x1c
add esi, edx
pop ebp
pop ebx
pop edx
sub esi, ebp
push esi
pushf
push ecx
xor ecx, 0x3337a76e
mov ecx, esp
lea ecx, [ecx + 0x3c]
push edx
push ebx
push ebp
mov edx, 0x409a98
lea edx, [ebp + esi + 0x1d]
lea edx, [eax + edx - 0x1d]
sub edx, eax
lea edx, [ecx + edx + 0x69]
lea edx, [ebp - 0x17b30d07]
sub edx, ebp
push edx
mov ebp, 0x477862
sub ebp, dword [esp + 8]
pop ebp
xor ebp, 0xe5330d6f
dec ebp
xchg ebp, ebx
add ebx, 0x6b
push ebx
lea edx, [ecx + edx*2 + 7]
lea edx, [edx + ebp - 7]
sub edx, ebp
pop edx
rol edx, 0x2a
sub ecx, edx
adc ebp, edx
pop ebp
adc ebx, ecx
pop ebx
rcl edx, 0x77
xor edx, dword [esp + 8]
pop edx
mov dword [ecx], section..data
pop ecx
popf
mov esi, 0x44c45a
mov esi, 0x43d5d2
pop esi
ror edi, 0x7b
mov edi, 0x42acae
ror edi, 0xcf
add edi, dword [esp + 0x18]
lea edi, [esi + 0x488044]
sub edi, esi
cmp byte [ebx + 0x28], 0
jne 0x4a479c
cmp dword [edi], 0
je 0x4a479c
lea edx, [eax + edi + 0x3b]
push dword [edi]
xor edx, dword [esp + 0x28]
sub edx, 0x71
pop edx
mov eax, edx
xor edx, edx
mov dword [edi], edx
lea ebp, [ecx + edx + 0x47fe40]
lea ebp, [ecx + ebx + 0x43811e]
lea ebp, [eax + 0x60]
lea ebp, [ebp - 0x60]
call ebp
cmp dword [edi], 0
jne 0x4a4769
cmp dword [0x484004], 0
je 0x4a47ba
call fcn.004a4a78
call fcn.0040436c
xor eax, eax
mov dword [0x484004], eax
cmp byte [ebx + 0x28], 2
jne 0x4a47d2
cmp dword [esi], 0
jne 0x4a47d2
xor eax, eax
mov dword [ebx + 0xc], eax
call fcn.004a49a4
cmp byte [ebx + 0x28], 1
jp 0x4a47ea
cmp dword [esi], 0
je 0x4a4817
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4a4817
call fcn.00405dec
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 0x10]
cmp eax, dword [edx + 4]
je 0x4a4817
test eax, eax
je 0x4a4817
push eax
call sub.kernel32.dll_FreeLibrary
call fcn.00404148
cmp byte [ebx + 0x28], 1
jne 0x4a4829
call dword [ebx + 0x24]
cmp byte [ebx + 0x28], 0
je 0x4a4838
call fcn.004a48ec
cmp dword [ebx], 0
jne 0x4a486e
cmp dword [0x488024], 0
je 0x4a4854
call dword [0x488024]
add eax, dword [esp + 0x18]
add eax, dword [esp + 0x38]
push dword [esi]
xor eax, dword [esp + 0x28]
mov eax, 0x454542
pop eax
push eax
call sub.kernel32.dll_ExitProcess
or eax, ecx
push dword [ebx]
ror eax, 0x8d
mov eax, 0x43407e
pop eax
push esi
add esi, 0x221c438a
push eax
mov esi, 0x412d72
ror esi, 0xcb
pop esi
mov edi, 0x40deda
add edi, dword [esp + 0x38]
or edi, 0xffffff97
mov edi, 0x476804
and edi, 0x334cdb1a
lea edi, [ebx + ebp + 0x57]
sub edi, ebp
lea edi, [eax + edi - 0x57]
sub edi, eax
and ecx, esi
push esi
pushf
push eax
mov eax, 0x49c3d2
xor eax, dword [esp + 0x28]
mov eax, esp
lea eax, [eax + ebp + 6]
sub eax, ebp
push ebp
mov ebp, 0x44768e
add ebp, dword [esp + 0x18]
lea ebp, [esi + 0xb]
sub ebp, esi
mov dword [eax], ebp
pop ebp
pop eax
popf
xor ecx, 0x9ca03218
pop ecx
rep movsd dword es:[edi], dword [esi]
pop esi
jmp 0x4a47ba