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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa0]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x423c80
mov ecx, 0xfffffffe
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x423c90
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x423cb0
mov eax, 0xffffffff
jmp 0x423cb9
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.0040c560
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x48], 0x81398722
mov dword [esp + 0x4c], 0x8d2d833d
mov dword [esp + 0x50], 0x89438f3e
mov dword [esp + 0x54], 0x953c8b39
mov dword [esp + 0x58], 0x91399728
mov dword [esp + 0x5c], 0x9d2e9328
mov dword [esp + 0x60], 0x99329f57
mov dword [esp + 0x64], 0x65669b5f
mov dword [esp + 0x68], 0x619d6796
mov dword [esp + 0x6c], 0x6d99639c
mov dword [esp + 0x70], 0x69976f92
mov dword [esp + 0x74], 0x75916b9a
mov dword [esp + 0x78], 0x71d2778b
mov dword [esp + 0x7c], 0x7dde73db
mov dword [esp + 0x80], 0x797e7fde
mov dword [esp + 0x84], 0
xor eax, eax
xor ecx, ecx
nop
mov edi, eax
and edi, 0x42
mov edx, ecx
xor edx, 0x61
add edx, edi
xor dl, byte [esp + ecx + 0x48]
add dl, 0x1b
mov byte [esp + ecx + 0x48], dl
inc ecx
add eax, 2
cmp ecx, 0x40
jne 0x423d50
mov dword [esp + 4], 0x33c131d4
mov dword [esp + 8], 0x3fc93dc0
mov dword [esp + 0xc], 0x3bdb39ca
mov dword [esp + 0x10], 0xc72bc52b
mov dword [esp + 0x14], 0xc32ec124
mov dword [esp + 0x18], 0xcf20cd21
mov dword [esp + 0x1c], 0xcb37c929
mov dword [esp + 0x20], 0xd72ad520
mov dword [esp + 0x24], 0xd327d134
mov dword [esp + 0x28], 0xdf24dd2b
mov dword [esp + 0x2c], 0xdb37d9ed
mov dword [esp + 0x30], 0xe71ae51c
mov dword [esp + 0x34], 0xe314e10d
mov dword [esp + 0x38], 0xef07ed1f
mov dword [esp + 0x3c], 0xeb1ce91f
mov dword [esp + 0x40], 0xf7ddf5df
mov dword [esp + 0x44], 0xf3f2f1db
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 4]
lea ebx, [eax - 0x58c6d98c]
mov ecx, ebx
xor ecx, edx
lea esi, [ecx + ecx]
not esi
add esi, ecx
mov edi, 0x58c6d98b
sub edi, eax
or edi, ecx
and esi, ebx
not edi
or edi, esi
mov ecx, edi
and ecx, 2
mov esi, edi
or edi, 2
imul edi, ecx
xor ecx, 2
and esi, 0xa73926fd
imul esi, ecx
add edi, esi
xor ebx, edi
mov ecx, 0xb
sub ecx, eax
and ecx, edi
add ebx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xbc
mov byte [esp + eax + 4], bl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x44
jb 0x423e00
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
movzx edx, word [ecx]
mov esi, dword [esp]
mov eax, esi
test dx, dx
je 0x423ea1
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 0x423e90
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x423ed1
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 0x423ec0
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x423f02
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x423ef0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x423f31
lea edx, [esp + 0x4a]
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 0x423f20
mov word [eax], 0
mov eax, dword [esp + 0xa8]
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 0x423f50
mov ecx, dword [esp + 0xa4]
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 0x423f70
mov edx, dword [esp + 0xa4]
mov edi, dword [edx + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x423f90
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x423fb4
mov eax, 0xffffffff
jmp 0x423fbd
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040c560
add esp, 4
mov edi, eax
mov dword [esp + 4], 0x43e341f7
mov dword [esp + 8], 0x47ea45e8
mov dword [esp + 0xc], 0x4bde49ed
mov dword [esp + 0x10], 0x4f214ddf
mov word [esp + 0x14], 0xb1b0
mov dword [esp + 0x16], 0
lea eax, [esp + 4]
mov ecx, 0x9250f
movzx edx, byte [eax]
lea esi, [ecx - 0x7e800000]
and esi, 0x8180210f
mov ebp, ecx
and ebp, 0x904f0
or ebp, esi
xor ebp, edx
mov edx, ebp
not edx
and edx, 0x4f
and ebp, 0xb0
sub edx, ebp
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x924f9
jne 0x424000
movzx ecx, word [esp + 4]
mov eax, edi
test cx, cx
je 0x424061
lea edx, [esp + 6]
mov eax, edi
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 0x424050
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
mov esi, dword [esp]
je 0x424091
add ebx, 2
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 0x424080
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x4240c1
add ecx, 2
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4240b0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x4240f1
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4240e0
mov word [eax], 0
mov dword [esp + 4], 0x333231ea
xor eax, eax
mov ecx, eax
add cl, 0xcc
xor cl, byte [esp + eax + 4]
add cl, 4
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 4
jne 0x424100
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb4]
call fcn.00424520
add esp, 0x1c
mov ebx, eax
jmp dword [0x44ac10]