Function at 0x422510
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 ebx, dword [esp + 0xa0]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422530
mov ecx, eax
and ecx, 0x42
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x422550
sar eax, 1
xor eax, 0x21
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x1e
test eax, eax
jns 0x422575
mov eax, 0xffffffff
jmp 0x42257e
add ecx, edx
lea eax, [ecx*2 + 0x3c]
push eax
call fcn.004084d0
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0x33cf31d6
mov dword [esp + 0x4c], 0x3fd33dcf
mov dword [esp + 0x50], 0x3bf939ca
mov dword [esp + 0x54], 0xc730c533
mov dword [esp + 0x58], 0xc32fc13c
mov dword [esp + 0x5c], 0xcf32cd34
mov dword [esp + 0x60], 0xcb26c901
mov dword [esp + 0x64], 0xd7ead511
mov dword [esp + 0x68], 0xd3ebd1e2
mov dword [esp + 0x6c], 0xdfe7dde0
mov dword [esp + 0x70], 0xdbe5d9e6
mov dword [esp + 0x74], 0xe7dfe5d6
mov dword [esp + 0x78], 0xe306e1dd
mov dword [esp + 0x7c], 0xef02ed05
mov dword [esp + 0x80], 0xebeae90a
mov word [esp + 0x84], 0
xor ebp, ebp
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x48]
mov eax, ebp
and eax, 0x68
mov edx, ecx
xor edx, 0x10d21c74
add edx, eax
mov eax, edx
and eax, edi
add eax, eax
sub edx, eax
add edx, edi
mov eax, edx
and eax, 0x3b
xor edx, 0xbb
lea eax, [edx + eax*2]
inc al
mov byte [esp + ecx + 0x48], al
inc ecx
add ebp, 2
cmp ecx, 0x3e
jne 0x422620
mov dword [esp], 0x57e949ec
mov dword [esp + 4], 0x53e155e8
mov dword [esp + 8], 0x5fff51ee
mov dword [esp + 0xc], 0x5bf75df7
mov dword [esp + 0x10], 0xa70a59fc
mov dword [esp + 0x14], 0xa308a509
mov dword [esp + 0x18], 0xaf13a101
mov dword [esp + 0x1c], 0xab16ad18
mov dword [esp + 0x20], 0xb703a90c
mov dword [esp + 0x24], 0xb334b507
mov dword [esp + 0x28], 0xbf13b1c5
mov dword [esp + 0x2c], 0xbb06bd04
mov dword [esp + 0x30], 0x8734b915
mov dword [esp + 0x34], 0x832b853b
mov dword [esp + 0x38], 0x8f3c8133
mov dword [esp + 0x3c], 0x8bfd8dfb
mov dword [esp + 0x40], 0x979689ff
mov dword [esp + 0x44], 0
xor eax, eax
nop
nop
nop
nop
movzx ecx, byte [esp + eax]
lea edx, [eax - 0x61d68e12]
xor edx, ecx
add edx, 0xe930c659
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
inc ecx
mov edx, ecx
and edx, 0xfffffffd
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
xor edi, 2
imul edi, edx
xor eax, 1
add eax, ecx
add eax, edi
cmp eax, 0x48
jb 0x4226f0
mov ebp, dword [esp + 0xa4]
mov ecx, dword [ebp + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x422771
add ecx, 2
mov eax, esi
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 0x422760
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x4227a1
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 0x422790
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4227d1
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 0x4227c0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x422801
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 0x4227f0
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 0x422820
mov edx, dword [ebp]
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 0x422840
mov edi, dword [ebp + 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 0x422860
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x422884
mov eax, 0xffffffff
jmp 0x42288d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.004084d0
add esp, 4
mov edi, eax
mov dword [esp], 0xd97ddb6d
mov dword [esp + 4], 0xdd62df64
mov dword [esp + 8], 0xd166d367
mov dword [esp + 0xc], 0xd527d765
mov dword [esp + 0x10], 0xabd4
mov byte [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x2f
xor cl, byte [esp + eax]
add cl, 0x15
mov byte [esp + eax], cl
inc eax
cmp eax, 0x15
jne 0x4228d0
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x422911
lea edx, [esp + 2]
mov eax, edi
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 0x422900
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422941
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 0x422930
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp]
movzx edx, word [ecx]
test dx, dx
je 0x422971
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 0x422960
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test dx, dx
je 0x4229a1
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 0x422990
mov word [eax], 0
mov dword [esp], 0x3332316a
xor eax, eax
nop
movzx ecx, byte [esp + eax]
mov edx, eax
or edx, 0x810dd80c
xor edx, ecx
add edx, 0x7abac7c3
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x4229b0
mov eax, esp
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb4]
call fcn.00422ca0
add esp, 0x1c
mov ebx, eax
jmp dword [0x448034]