Function at 0x425d40
Capabilities:
Encode data using xor
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x168
mov dword [esp + 0x18], 0x63236105
mov dword [esp + 0x1c], 0x67f665f4
mov dword [esp + 0x20], 0x6bcb692c
mov dword [esp + 0x24], 0x6fcf6df8
mov dword [esp + 0x28], 0x53525135
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov word [esp + 0x30], 0
mov dword [esp + 0xcc], 0
mov ecx, dword [esp + 0xcc]
cmp ecx, 0x19
ja 0x425e0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xcc]
movzx edx, byte [esp + edx + 0x18]
mov esi, ecx
and esi, 0x2c520ed0
xor ecx, 0xac520ed0
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x98]
add cl, 0x50
mov edx, dword [esp + 0xcc]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0xcc]
mov ecx, dword [esp + 0xcc]
cmp ecx, 0x1a
jb 0x425db0
lea esi, [esp + 0x13a]
lea edx, [esp + 0x18]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x14e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x8c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x449d14]
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jns 0x425e5b
mov eax, 0xffffffff
jmp 0x425e5e
lea eax, [ebx + ebx]
push eax
call fcn.00409270
add esp, 4
push edi
push ebx
mov dword [esp + 0x84], eax
push eax
push 9
push esi
push 0
call dword [0x449d14]
mov dword [esp + 0x18], 0xbb53b972
mov dword [esp + 0x1c], 0xbf59bd2f
mov dword [esp + 0x20], 0xa332a12f
mov dword [esp + 0x24], 0xa7a4a546
lea edx, [esp + 0x28]
mov byte [esp + 0x28], 0
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xcc]
cmp eax, 0x10
ja 0x425f15
nop
nop
nop
nop
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xcc]
movzx ecx, byte [esp + ecx + 0x18]
lea esi, [eax + 0x67]
and esi, ecx
mov edi, 0x96442198
sub edi, eax
or edi, ecx
not edi
add edi, ecx
sub edi, esi
mov dword [esp + 0x98], edi
mov eax, dword [esp + 0x98]
add al, 0x2f
mov ecx, dword [esp + 0xcc]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0xcc]
mov eax, dword [esp + 0xcc]
cmp eax, 0x11
jb 0x425ec0
lea edi, [esp + 0x12a]
lea esi, [esp + 0x18]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x13a]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x18], 0x53fb519a
mov dword [esp + 0x1c], 0x5ff15def
mov dword [esp + 0x20], 0x5bea59ef
mov dword [esp + 0x24], 0x27e925f6
mov dword [esp + 0x28], 0x23962185
mov dword [esp + 0x2c], 0x2f9e2d81
mov dword [esp + 0x30], 0x2b282995
lea esi, [esp + 0x34]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xcc], 0
mov ecx, dword [esp + 0xcc]
cmp ecx, 0x27
ja 0x426010
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xcc]
movzx edx, byte [esp + edx + 0x18]
lea edi, [ecx + edx]
add edi, 0x5592a8b3
add ecx, 0x5592a8b3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 0x98], edi
mov ecx, dword [esp + 0x98]
mov edx, ecx
or edx, 0x1a
and ecx, 0x1a
add ecx, edx
inc cl
mov edx, dword [esp + 0xcc]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0xcc]
mov ecx, dword [esp + 0xcc]
cmp ecx, 0x28
jb 0x425fb0
lea edx, [esp + 0xcc]
lea ebx, [esp + 0x18]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xe8]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x18], 0xfb63f982
mov dword [esp + 0x1c], 0xff99fd6f
mov dword [esp + 0x20], 0xf362f16f
mov dword [esp + 0x24], 0xf784f596
mov dword [esp + 0x28], 0xebaae982
lea ebx, [esp + 0x2c]
mov word [esp + 0x2c], 0xedea
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
mov dword [esp + 0x100], 0
mov ecx, dword [esp + 0x100]
cmp ecx, 0x1b
ja 0x4260fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x100]
mov esi, dword [esp + 0x100]
movzx esi, byte [esp + esi + 0x18]
mov edi, ecx
and edi, 0x31ad3d5f
xor ecx, 0x31ad3d5f
lea ecx, [ecx + edi*2]
lea edi, [ecx + esi]
and ecx, esi
add ecx, ecx
sub edi, ecx
mov dword [esp + 0x98], edi
mov ecx, dword [esp + 0x98]
add cl, 0x67
mov esi, dword [esp + 0x100]
mov byte [esp + esi + 0x18], cl
inc dword [esp + 0x100]
mov ecx, dword [esp + 0x100]
cmp ecx, 0x1c
jb 0x4260a0
lea esi, [esp + 0x14e]
lea eax, [esp + 0x18]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x162]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x12a]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], esi
mov eax, dword [esp + 0x7c]
add eax, 2
mov dword [esp + 0x90], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x80], 0
cmp ecx, 3
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x445b18]
mov dword [esp + 0xc], edx
jmp dword [0x445bb0]
jmp dword [0x445ba0]
mov eax, dword [esp + ebx*4 + 0x11c]
mov esi, 0xfffffffe
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x426660
mov dword [esp + 0x14], eax
mov eax, esi
sar eax, 1
mov dword [esp + 0x94], eax
mov dword [esp + 0x18], 0x439441a2
mov dword [esp + 0x1c], 0x5fa15db3
mov dword [esp + 0x20], 0x5bac59bd
mov dword [esp + 0x24], 0x57b9557a
mov dword [esp + 0x28], 0x53b351da
mov dword [esp + 0x2c], 0x6f936dde
mov word [esp + 0x30], 0x696e
lea eax, [esp + 0x30]
mov dword [eax + 5], 0
mov dword [eax + 2], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 0x20
ja 0x426730
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x60]
movzx edx, byte [esp + eax + 0x18]
lea eax, [ecx + 0x6d23d58b]
and eax, edx
add ecx, edx
add ecx, 0x6d23d58b
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x33
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0x21
jb 0x4266e0
lea edi, [esp + 0x100]
lea eax, [esp + 0x18]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x30]
lea edi, [esp + 0x118]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x94]
lea ecx, [edx + eax]
add edx, eax
add edx, 0xd
lea eax, [ecx + ecx]
add eax, 0x1a
test edx, edx
jns 0x42677e
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x4267b1
mov edx, dword [esp + 0x90]
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4267a0
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x14]
movzx ecx, word [edx]
test cx, cx
je 0x4267e1
add edx, 2
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 0x4267d0
mov word [eax], 0
movzx ecx, word [esp + 0x100]
test cx, cx
mov dword [esp + 0xec], ebx
je 0x426821
lea edx, [esp + 0x102]
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 [edx]
add edx, 2
test cx, cx
jne 0x426810
mov word [eax], 0
lea eax, [esp + 0x84]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x10c], edi
push edi
call fcn.0043d1d0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x445b30]
mov edi, dword [esp + 0xfc]
jmp dword [0x445bc0]
jmp dword [0x445b38]
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0x8c]
call fcn.0043d570
add esp, 0xc
nop
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0x8c]
call fcn.0043d570
add esp, 0xc
jmp dword [0x445b40]
not eax
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x445b48]
mov edi, dword [esp + 0x88]
lea eax, [edi + 1]
push eax
call fcn.00409270
add esp, 4
mov ebx, eax
push 0
push edi
push eax
push dword [esp + 0x90]
call fcn.0043d680
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x445b50]
jmp dword [0x445b58]
mov eax, dword [esp + 0x88]
mov byte [ebx + eax], 0
push ebx
call fcn.00401e70
add esp, 4
nop
nop
nop
mov eax, dword [esp + 0x88]
mov byte [ebx + eax], 0
push ebx
call fcn.00401e70
add esp, 4
jmp dword [0x445b60]
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x445b68]
jmp dword [0x445ba8]
mov dword [esp + 0xf4], eax
push eax
call fcn.00402900
add esp, 4
mov dword [esp + 0x18], 0xcec5f8f7
mov dword [esp + 0x1c], 0xf3f0e6fc
mov dword [esp + 0x20], 0xc6fec6bc
mov dword [esp + 0x24], 0xcbf8eef4
mov dword [esp + 0x28], 0xc6f5f9fd
mov word [esp + 0x2c], 0xd6f9
mov byte [esp + 0x2e], 0x50
lea ecx, [esp + 0x30]
mov word [ecx + 3], 0
mov dword [ecx - 1], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1c
ja 0x426a07
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0x18]
lea edi, [ecx + 0x91]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0xb691a391
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x98]
add cl, 9
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1d
jb 0x4269c0
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00402ce0
add esp, 8
mov edx, 0xffffffff
mov edi, 0xfffffffe
nop
mov ecx, edx
add edi, 2
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x426a20
mov ecx, edx
and ecx, 0xfffffffc
mov dword [esp + 0xc], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x5c]
and edx, 3
mov ecx, dword [esp + 0x5c]
or ecx, 3
imul ecx, edx
xor edx, 3
imul edx, dword [esp + 0xc]
add ecx, edx
mov edx, dword [esp + 0x5c]
shr ecx, 2
mov dword [esp + 0x74], ecx
cmp byte [eax + edx - 1], 0x3d
mov dword [esp + 0xf0], esi
je 0x426a87
mov ecx, edx
xor ecx, 0xfffffffe
mov edx, edi
and edx, 0xfffffffc
add edx, ecx
cmp byte [eax + edx + 1], 0x2e
mov edx, dword [esp + 0x5c]
jne 0x426a8b
dec dword [esp + 0x74]
mov ecx, edx
xor ecx, 0xfffffffd
and edi, 0xfffffffa
add edi, ecx
cmp byte [eax + edi + 1], 0x3d
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf8], ebx
je 0x426ab1
cmp byte [eax + edx - 2], 0x2e
jne 0x426ab8
mov eax, dword [esp + 0x74]
dec eax
jmp 0x426abc
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], eax
inc eax
push eax
call fcn.00409270
add esp, 4
mov dword [esp + 0x78], eax
cmp dword [esp + 0x5c], 0
je 0x426be7
xor ebx, ebx
mov edi, 2
jmp 0x426b02
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov ebx, ecx
cmp edi, edx
mov edi, eax
jae 0x426be7
mov esi, dword [esp + 0xe8]
movzx eax, byte [esi + edi - 2]
push eax
call fcn.00419f30
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [esi + edi - 1]
push eax
call fcn.00419f30
mov edx, dword [esp + 0x60]
add esp, 4
mov byte [esp + 0xb], al
movzx eax, al
mov ecx, eax
not ecx
or ecx, 0x30
add eax, ecx
inc eax
movzx ecx, byte [esp + 0xc]
shr eax, 4
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x78]
mov byte [ecx + ebx], al
lea ecx, [ebx + 1]
cmp edi, edx
jae 0x426af0
mov dword [esp + 0xc], ebx
movzx eax, byte [esi + edi]
push eax
mov esi, ecx
call fcn.00419f30
mov ecx, esi
mov edx, dword [esp + 0x60]
add esp, 4
cmp al, 0x40
je 0x426af0
movzx ecx, byte [esp + 0xb]
shl cl, 4
mov byte [esp + 0xb], al
shr al, 2
and al, 0xf
or al, cl
mov esi, dword [esp + 0xc]
lea ebx, [esi + 2]
mov ecx, dword [esp + 0x78]
mov byte [ecx + esi + 1], al
lea eax, [edi + 1]
cmp eax, edx
jae 0x426ae2
mov eax, dword [esp + 0xe8]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419f30
mov edx, dword [esp + 0x60]
add esp, 4
cmp al, 0x40
mov ecx, ebx
mov ah, byte [esp + 0xb]
je 0x426af0
shl ah, 6
add al, ah
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0xc]
mov byte [ecx + esi + 2], al
add esi, 3
mov ecx, esi
jmp 0x426af0
mov eax, dword [esp + 0x74]
add eax, 0xfffffffb
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
add eax, 5
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
push 0x932a8d34
push dword [0x449d24]
call fcn.0043c630
add esp, 8
lea ecx, [esp + 0x54]
lea edx, [esp + 0x60]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf0]
jmp dword [ecx*4 + 0x445b70]
jmp dword [0x445b7c]
mov dword [esp + 0x98], 0x9b3699ef
mov dword [esp + 0x9c], 0xe790e554
mov dword [esp + 0xa0], 0xe35ae15c
mov dword [esp + 0xa4], 0xefeeed50
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x426ce5
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax - 0x4309e444]
and edx, ecx
add eax, ecx
add eax, 0xbcf61bbc
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xdc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x426ca0
lea eax, [esp + 0x98]
lea edi, [esp + 0x18]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0xa8]
xor ecx, ecx
lea edi, [esp + 0x28]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x10]
cmp esi, 0xffffffef
jge 0x426d18
mov eax, 0xffffffff
push eax
call fcn.00409270
add esp, 4
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx]
mov ecx, eax
test dx, dx
je 0x426d51
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 2]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x426d40
mov word [ecx], 0
movzx edx, word [esp + 0x18]
test dx, dx
je 0x426d81
lea edi, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x426d70
mov word [ecx], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push eax
call fcn.00409b10
jmp case.0x426166.25
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push edi
call fcn.00409b10
jmp dword [0x445b80]
mov dword [esp + 0x98], 0x9b3699ef
mov dword [esp + 0x9c], 0xe790e554
mov dword [esp + 0xa0], 0xe35ae15c
mov dword [esp + 0xa4], 0xefeeed50
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x426e45
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax - 0x4309e444]
and edx, ecx
add eax, ecx
add eax, 0xbcf61bbc
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xdc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x426e00
lea eax, [esp + 0x98]
mov ecx, 4
lea edi, [esp + 0x18]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0xa8]
lea edi, [esp + 0x28]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp esi, 0xffffffef
jge 0x426e80
mov eax, 0xffffffff
jmp 0x426e83
lea eax, [esi + 0x10]
push eax
call fcn.00409270
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x426ec1
mov eax, dword [esp + 0x14]
lea edx, [eax + 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 0x426eb0
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x426da0
lea edx, [esp + 0x1a]
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 0x426ee0
jmp 0x426da0
mov dword [esp + 0xc], eax
jmp dword [0x445b88]
jmp dword [0x445b28]
jmp dword [0x445c20]