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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x423b60
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x423b70
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x423b90
mov eax, 0xffffffff
jmp 0x423b99
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040c820
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0x59d15ba6
mov dword [esp + 0x4c], 0x5da55fad
mov dword [esp + 0x50], 0x519753aa
mov dword [esp + 0x54], 0x55a457a1
mov dword [esp + 0x58], 0x69916ba0
mov dword [esp + 0x5c], 0x6d9a6fe0
mov dword [esp + 0x60], 0x618663b3
mov dword [esp + 0x64], 0x655267a3
mov dword [esp + 0x68], 0x79b57b52
mov dword [esp + 0x6c], 0x7db17f4c
mov dword [esp + 0x70], 0x71bb73b6
mov dword [esp + 0x74], 0x75b97746
mov dword [esp + 0x78], 0x9e60bbf
mov dword [esp + 0x7c], 0xdea0ff7
mov dword [esp + 0x80], 0x10203ea
mov eax, 0xb592c40f
mov edi, 0xf0
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x4a6d3c39]
mov ecx, edi
xor ecx, eax
and ecx, edx
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0xb4
mov byte [esp + eax + 0x4a6d3c39], cl
inc eax
dec edi
cmp eax, 0xb592c44b
jne 0x423c30
mov dword [esp], 0x93e191f4
mov dword [esp + 4], 0xafd9ad20
mov dword [esp + 8], 0xabcba9da
mov dword [esp + 0xc], 0xa7dba5db
mov dword [esp + 0x10], 0xa3dea1c4
mov dword [esp + 0x14], 0xbfc0bdc1
mov dword [esp + 0x18], 0xbb37b9d9
mov dword [esp + 0x1c], 0xb73ab5c0
mov dword [esp + 0x20], 0xb3c7b1d4
mov dword [esp + 0x24], 0xcf44cdbb
mov dword [esp + 0x28], 0xcbb7c9fd
mov dword [esp + 0x2c], 0xc74ac54c
mov dword [esp + 0x30], 0xc3b4c1bd
mov dword [esp + 0x34], 0xdfa7ddaf
mov dword [esp + 0x38], 0xdbacd9af
mov dword [esp + 0x3c], 0xd7edd5ef
mov dword [esp + 0x40], 0xd3d2d1eb
mov byte [esp + 0x44], 0
mov eax, 0x64ee49c
mov ebp, 0xb1b11b63
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x64ee49c]
mov ecx, ebp
and ecx, 0x801101c8
mov edx, eax
and edx, 0x40e6037
or edx, ecx
xor edx, edi
mov ecx, edx
xor ecx, 0x10
and edx, 0x27
add edx, edx
sub edx, ecx
add dl, 0xcc
mov byte [esp + eax - 0x64ee49c], dl
inc eax
dec ebp
cmp eax, 0x64ee4e1
jne 0x423d00
mov edi, dword [esp + 0xa0]
mov ecx, dword [edi + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x423d71
add ecx, 2
mov eax, esi
nop
nop
nop
nop
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 0x423d60
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x423da1
lea edx, [esp + 2]
nop
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 0x423d90
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x423dd1
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 0x423dc0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x423e01
lea edx, [esp + 0x4a]
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 0x423df0
mov word [eax], 0
mov eax, dword [esp + 0xa4]
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 0x423e20
mov edx, dword [edi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x423e40
mov edi, dword [edi + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x423e60
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x423e84
mov eax, 0xffffffff
jmp 0x423e8d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040c820
add esp, 4
mov edi, eax
mov dword [esp], 0x89358b25
mov dword [esp + 4], 0x8532873c
mov dword [esp + 8], 0x810e833f
mov dword [esp + 0xc], 0x9d6f9f0d
mov dword [esp + 0x10], 0x9b9c
mov eax, 0x63
mov ecx, 0x9c
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax - 0x63]
mov edx, ecx
xor edx, eax
and edx, ebp
xor edx, eax
add dl, 0x11
mov byte [esp + eax - 0x63], dl
inc eax
dec ecx
cmp eax, 0x77
jne 0x423ed0
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x423f11
lea edx, [esp + 2]
mov eax, edi
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423f00
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
mov ebp, dword [esp + 0xa0]
je 0x423f41
add ebx, 2
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 0x423f30
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp]
movzx edx, word [ecx]
test dx, dx
je 0x423f71
add ecx, 2
nop
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 0x423f60
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test dx, dx
je 0x423fa1
add ecx, 2
nop
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 0x423f90
mov word [eax], 0
mov dword [esp], 0x4146476e
mov dword [esp + 4], 0
mov eax, esp
mov ecx, 0x38b2376e
nop
nop
nop
nop
movzx edx, byte [eax]
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, 0x64778436
mov ebp, edx
not ebp
or ebp, 0x9b887bc9
add edx, ebp
inc edx
or edx, ebx
xor edx, ecx
xor edx, 0x9b887bc9
mov ebx, edx
and ebx, 1
or edx, 1
add edx, ebx
add dl, 0x2a
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x38b23766
jne 0x423fc0
mov eax, esp
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb0]
call fcn.00424300
add esp, 0x1c
mov ebx, eax
jmp dword [0x44d818]