Function at 0x420c50
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
mov ecx, dword [eax]
mov eax, 0xfffffffe
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x420c70
sar eax, 1
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x420c90
sar ecx, 1
add eax, ecx
add eax, 0x21
mov ecx, eax
and ecx, 0x1e
xor eax, 0x1e
lea eax, [eax + ecx*2]
test eax, eax
jns 0x420cb8
mov eax, 0xffffffff
jmp 0x420cba
add eax, eax
push eax
call fcn.00409550
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x50], 0x971b993a
mov dword [esp + 0x54], 0x930f951b
mov dword [esp + 0x58], 0x8f31911e
mov dword [esp + 0x5c], 0x8b188d1f
mov dword [esp + 0x60], 0x871b8904
mov dword [esp + 0x64], 0x830e850c
mov dword [esp + 0x68], 0xff628139
mov dword [esp + 0x6c], 0xfbb6fdb9
mov dword [esp + 0x70], 0xf7bff9b6
mov dword [esp + 0x74], 0xf3bbf5b8
mov dword [esp + 0x78], 0xefa5f1ba
mov dword [esp + 0x7c], 0xeba3eda2
mov dword [esp + 0x80], 0xe742e9a5
mov dword [esp + 0x84], 0xe37ee57d
mov dword [esp + 0x88], 0xdfdee17e
mov byte [esp + 0x8c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x26
xor cl, byte [esp + eax + 0x50]
add cl, 0x42
mov byte [esp + eax + 0x50], cl
inc eax
cmp eax, 0x3d
jne 0x420d60
mov dword [esp + 4], 0xf779f95c
mov dword [esp + 8], 0xf341f578
mov dword [esp + 0xc], 0xcf6ff17e
mov dword [esp + 0x10], 0xcb77cd77
mov dword [esp + 0x14], 0xc77ac96c
mov dword [esp + 0x18], 0xc378c579
mov dword [esp + 0x1c], 0xdf53c161
mov dword [esp + 0x20], 0xdb56dd68
mov dword [esp + 0x24], 0xd763d97c
mov dword [esp + 0x28], 0xd354d567
mov dword [esp + 0x2c], 0x2f93d1a5
mov dword [esp + 0x30], 0x2ba62da4
mov dword [esp + 0x34], 0x27942995
mov dword [esp + 0x38], 0x239b25ab
mov dword [esp + 0x3c], 0x3f8c2193
mov dword [esp + 0x40], 0x3b4d3d4b
mov dword [esp + 0x44], 0x3736394f
mov word [esp + 0x48], 0
mov edi, 0x75918c56
mov ecx, 0xa9
nop
movzx edx, byte [esp + edi - 0x75918c52]
mov esi, ecx
and esi, 0x8f
mov ebp, edi
and ebp, 0x70
or ebp, esi
xor ebp, 0x70
mov esi, ecx
and esi, 0xb2
mov eax, edi
and eax, 0x4d
or eax, esi
xor eax, 0x4d
and eax, ebp
mov esi, edx
xor esi, 0x111188ff
or esi, eax
xor esi, 0x111188ff
lea eax, [ecx - 0x75918d00]
not edx
and edx, eax
or edx, esi
mov eax, edx
not eax
and eax, 0x51
xor edx, 0xae
lea eax, [edx + eax*2]
inc al
mov byte [esp + edi - 0x75918c52], al
inc edi
dec ecx
cmp edi, 0x75918c9c
jne 0x420e10
mov eax, dword [esp + 0xac]
mov ecx, dword [eax]
movzx edx, word [ecx]
mov esi, dword [esp]
mov eax, esi
test dx, dx
je 0x420eb1
add ecx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x420ea0
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x420ee1
lea edx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420ed0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x420f11
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x420f00
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x420f41
lea edx, [esp + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420f30
mov word [eax], 0
mov eax, dword [esp + 0xb4]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x420f60
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x420f80
mov edx, dword [esp + 0xac]
mov esi, dword [edx + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x420fa0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x420fc4
mov eax, 0xffffffff
jmp 0x420fcd
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.00409550
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 4], 0xb16d8f75
mov dword [esp + 8], 0xb55eb35c
mov dword [esp + 0xc], 0xb922b753
mov dword [esp + 0x10], 0xbd6bbb2d
mov word [esp + 0x14], 0xbfbc
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov eax, 0xdd
mov edi, 0x70f3b922
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xd9]
lea esi, [eax - 0x70f3ba00]
lea ebp, [edi - 0x70f3b900]
mov ecx, edi
and ecx, 0x4051b902
and esi, 0x8a0c447d
or esi, ecx
xor esi, edx
xor esi, 0x4551bb82
mov ecx, eax
and ecx, edx
or ecx, esi
not edx
or edx, ebp
and edx, ecx
mov ecx, 1
sub ecx, edx
not ecx
or ecx, edx
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0xae
mov byte [esp + eax - 0xd9], dl
inc eax
dec edi
cmp eax, 0xf5
jne 0x421020
movzx ecx, word [esp + 4]
mov edi, dword [esp + 0x4c]
mov eax, edi
test cx, cx
je 0x4210b1
lea edx, [esp + 6]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4210a0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4210e1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4210d0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x421111
add ecx, 2
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x421100
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xac]
mov ecx, dword [ecx + 4]
movzx edx, word [ecx]
test dx, dx
je 0x421141
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x421130
mov word [eax], 0
mov dword [esp + 4], 0x595a5b3a
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
and ecx, 5
mov edx, eax
and edx, 2
mov esi, eax
or esi, 2
imul esi, edx
xor edx, 2
imul edx, ecx
mov ecx, eax
xor ecx, 0xef
add ecx, esi
add ecx, edx
xor cl, byte [esp + eax + 4]
add cl, 0x55
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x421160
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
mov esi, dword [esp + 0x10]
push esi
push edi
push dword [esp + 0xbc]
call fcn.00421470
add esp, 0x1c
mov ebx, eax
jmp dword [0x446100]