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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov ebx, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x420db0
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x420dd0
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
jns 0x420dfe
mov eax, 0xffffffff
jmp 0x420e05
lea eax, [ecx*2 + 0x36]
push eax
call fcn.0040ca00
add esp, 4
mov dword [esp + 0xc], 0x77c209ac
mov dword [esp + 0x10], 0x73dd75e7
mov dword [esp + 0x14], 0x7fea71d1
mov dword [esp + 0x18], 0x7b377d1c
mov dword [esp + 0x1c], 0x67fa79e0
mov dword [esp + 0x20], 0x63f065c9
mov dword [esp + 0x24], 0x6fc761ff
mov dword [esp + 0x28], 0x6bf86dff
mov dword [esp + 0x2c], 0x57e96908
mov dword [esp + 0x30], 0x53ce55f9
mov dword [esp + 0x34], 0x5ff751cc
mov dword [esp + 0x38], 0x5bf15dce
mov dword [esp + 0x3c], 0x47e259c7
mov word [esp + 0x40], 0x4544
mov dword [esp + 0x42], 0
mov esi, 0x2fa2ba3e
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi - 0x2fa2ba32]
xor ecx, esi
add ecx, 0xbaaeac75
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov edx, ecx
xor edx, 0xac
and ecx, 0x53
add ecx, ecx
sub ecx, edx
mov byte [esp + esi - 0x2fa2ba32], cl
inc esi
cmp esi, 0x2fa2ba78
jne 0x420e90
movzx ecx, word [ebx]
mov esi, eax
test cx, cx
je 0x420ef1
add ebx, 2
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x420ee0
mov word [esi], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x420f21
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420f10
mov word [esi], 0
movzx ecx, word [edi]
test cx, cx
mov dword [esp + 0x58], eax
je 0x420f51
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x420f40
mov word [esi], 0
mov esi, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x420f60
mov edx, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x420f80
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x78]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [edi + 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, 0xd
mov ecx, eax
xor ecx, 6
and eax, 6
lea eax, [ecx + eax*2]
test eax, eax
jns 0x420fcf
mov eax, 0xffffffff
jmp 0x420fd1
add eax, eax
push eax
call fcn.0040ca00
add esp, 4
movzx ecx, word [esi]
mov edx, eax
test cx, cx
je 0x421001
add esi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x420ff0
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov word [edx], 0x2f
mov dword [esp + 0xc], 0x93df91c7
mov dword [esp + 0x10], 0x9f029d04
mov dword [esp + 0x14], 0x9b0c9935
mov dword [esp + 0x18], 0x872f8517
mov dword [esp + 0x1c], 0x83148117
mov dword [esp + 0x20], 0x8fd98d1f
mov word [esp + 0x24], 0x8988
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov eax, 0xf7757d99
mov ecx, 0xeeeafb32
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x88a8273]
mov edx, ecx
and edx, 0x8ea1b48
mov ebx, eax
xor ebx, 0xc750da4
mov edi, 0x18
sub edi, edx
sub edi, ebx
add edx, ebx
add edx, 0x67
mov ebx, edx
and ebx, esi
and edi, 0x26
and edx, 0xd9
or edx, edi
xor edx, esi
xor edx, 0x26
not ebx
and ebx, edx
add bl, 0xcc
mov byte [esp + eax + 0x88a8273], bl
inc eax
add ecx, 2
cmp eax, 0xf7757db9
jne 0x421070
mov edx, dword [esp + 8]
add edx, 2
mov ecx, dword [esp + 0x54]
movzx eax, word [ecx]
test ax, ax
je 0x421103
add ecx, 2
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4210f0
jmp 0x42110e
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp]
mov word [edx], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x421143
lea ecx, [esp + 0xe]
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421130
jmp 0x421147
mov edi, dword [esp + 4]
mov word [edx], 0
movzx eax, word [ebx]
test ax, ax
je 0x421171
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x421160
mov dword [esp + 8], edx
mov word [edx], 0
mov dword [esp + 0xc], 0x3736390e
mov byte [esp + 0x10], 0
mov eax, 0xa3c1ad76
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5c3e5296]
xor ecx, eax
add ecx, 0xcd379cb1
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x5c3e5296], cl
inc eax
cmp eax, 0xa3c1ad7b
jne 0x421190
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
mov ebx, dword [esp + 0x68]
push ebx
push edi
push ebp
call fcn.00424620
add esp, 0x1c
mov byte [esp], al
jmp dword [0x44ca6c]