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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x422cf8
sub esp, 0x68
mov ebx, dword [0xb2cd6c]
xor ebp, ebp
cmp ebx, ebp
jne 0x42291a
mov dword [esp], 0xafc7c
mov ebx, 0xb3f360
mov dword [esp + 4], ebx
add dword [esp + 4], 0x90
call dbg.runtime.sysAlloc
mov ebx, dword [esp + 8]
cmp byte [0xb3d87c], 0
jne 0x422ce2
mov dword [0xb2cd6c], ebx
mov ebx, dword [0xb2cd6c]
xor ebp, ebp
cmp ebx, ebp
jne 0x42291a
mov ebx, 0x56bae0
mov dword [esp], ebx
mov dword [esp + 4], 0x1f
call dbg.runtime.throw
xor edi, edi
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
xor esi, esi
mov dword [esp + 0x2c], ecx
mov ecx, ebp
mov ebp, dword [esp + 0x2c]
cmp esi, ebp
jge 0x422966
mov ebp, dword [ecx]
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
add edi, dword [esp + 0x1c]
mov ebx, edi
shl ebx, 0xa
add ebx, edi
mov edi, ebx
shr ebx, 6
xor ebx, edi
mov edi, ebx
add ecx, 4
inc esi
mov ebp, dword [esp + 0x2c]
cmp esi, ebp
jl 0x422938
add edi, dword [esp + 0x70]
mov ebp, edi
shl edi, 0xa
add edi, ebp
mov ebp, edi
shr edi, 6
xor edi, ebp
mov ebp, edi
shl edi, 3
add edi, ebp
mov ebp, edi
shr edi, 0xb
xor edi, ebp
mov eax, 0xba6a1fbd
mul edi
mov ebx, edx
shr ebx, 0x11
imul ebx, ebx, 0x2bf1f
mov ebp, edi
mov dword [esp + 0x24], edi
sub ebp, ebx
mov esi, dword [0xb2cd6c]
cmp esi, 0
je 0x422cdb
mov dword [esp + 0x20], ebp
cmp ebp, 0x2bf1f
jae 0x422cd4
shl ebp, 2
add esi, ebp
mov eax, dword [esi]
xor ebp, ebp
cmp eax, ebp
je 0x422a85
mov ebp, dword [eax + 8]
mov ebx, dword [esp + 0x6c]
cmp ebp, ebx
jne 0x422a79
mov ebp, dword [eax + 0xc]
cmp ebp, edi
jne 0x422a79
mov ebp, dword [eax + 0x10]
mov ebx, dword [esp + 0x70]
cmp ebp, ebx
jne 0x422a79
mov dword [esp + 0x30], eax
xor ebx, ebx
mov ecx, 0x18
mov edx, eax
add edx, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x14]
cmp eax, 0x20
ja 0x422ccd
cmp ecx, eax
ja 0x422ccd
cmp edx, 0
je 0x422cc6
mov dword [esp + 0x38], edx
mov dword [esp], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x14], ebx
call dbg.runtime.eqslice
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
movzx ebx, byte [esp + 0x18]
cmp bl, 0
je 0x422a79
mov dword [esp + 0x84], eax
add esp, 0x68
ret
mov eax, dword [eax]
xor ebp, ebp
cmp eax, ebp
jne 0x4229d0
cmp byte [esp + 0x80], 0
jne 0x422a9e
mov dword [esp + 0x84], 0
add esp, 0x68
ret
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.runtime.newBucket
mov edx, dword [esp + 8]
mov dword [esp + 0x34], edx
xor ebx, ebx
mov ecx, 0x18
mov eax, edx
add edx, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x14]
cmp eax, 0x20
ja 0x422cbf
cmp ecx, eax
ja 0x422cbf
cmp edx, 0
je 0x422cb8
mov dword [esp + 0x44], edx
mov esi, edx
mov dword [esp + 0x48], ecx
mov edx, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], eax
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], edx
mov eax, edx
mov dword [esp + 0x54], ecx
cmp ecx, edx
jge 0x422b19
mov eax, ecx
mov dword [esp + 0x5c], esi
mov dword [esp], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 4], ebp
mov ebx, eax
shl ebx, 2
mov dword [esp + 8], ebx
call dbg.runtime.memmove
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x10], eax
mov esi, dword [0xb2cd6c]
cmp esi, 0
je 0x422cb1
mov ebp, dword [esp + 0x20]
cmp ebp, 0x2bf1f
jae 0x422caa
shl ebp, 2
add esi, ebp
mov eax, dword [esi]
cmp byte [0xb3d87c], 0
jne 0x422c95
mov dword [ecx], eax
mov esi, dword [0xb2cd6c]
cmp esi, 0
je 0x422c8e
mov ebp, dword [esp + 0x20]
cmp ebp, 0x2bf1f
jae 0x422c87
shl ebp, 2
add esi, ebp
cmp byte [0xb3d87c], 0
jne 0x422c72
mov dword [esi], ecx
mov ebx, dword [esp + 0x6c]
cmp ebx, 1
jne 0x422c1a
mov eax, dword [0xb2cd88]
cmp ecx, 0
je 0x422c16
cmp byte [0xb3d87c], 0
jne 0x422c01
mov dword [ecx + 4], eax
cmp byte [0xb3d87c], 0
jne 0x422bea
mov dword [0xb2cd88], ecx
mov dword [esp + 0x84], ecx
add esp, 0x68
ret
mov ebp, 0xb2cd88
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422bdf
lea esi, [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422bd0
mov dword [ecx], eax
jmp 0x422bc4
mov eax, dword [0xb2cd68]
cmp ecx, 0
je 0x422c6e
cmp byte [0xb3d87c], 0
jne 0x422c59
mov dword [ecx + 4], eax
cmp byte [0xb3d87c], 0
jne 0x422c42
mov dword [0xb2cd68], ecx
jmp 0x422bdf
mov ebp, 0xb2cd68
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422bdf
lea esi, [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422c31
mov dword [ecx], eax
jmp 0x422c25
mov dword [esp], esi
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422bb0
call dbg.runtime.panicindex
ud2
mov dword [esi], eax
jmp 0x422b8c
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x34]
jmp 0x422b7d
call dbg.runtime.panicindex
ud2
mov dword [esi], eax
jmp 0x422b57
mov dword [edx], eax
jmp 0x422ae5
call dbg.runtime.panicslice
ud2
mov dword [edx], eax
jmp 0x422a28
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicindex
ud2
mov dword [esi], eax
jmp 0x4229af
mov ebp, 0xb2cd6c
mov dword [esp], ebp
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
jmp 0x4228f9
call dbg.runtime.morestack_noctxt
jmp dbg.runtime.stkbucket