Function at 0x1021e350
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
mov eax, dword [esp + 0x60]
xor edx, edx
push ebx
push ebp
push esi
mov ecx, dword [eax + 0x18]
mov ebx, 1
mov ebp, dword [eax]
mov esi, dword [eax + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
lea eax, [ebp - 1]
add eax, ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x30], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], ebx
cmp eax, ebx
jle 0x1021e841
dec ecx
mov dword [esp + 0x44], 5
mov dword [esp + 0x60], ecx
push edi
cmp ebx, ecx
mov edx, ebx
mov eax, ebx
cmovge edx, ecx
sub eax, ebp
xor ecx, ecx
mov ebp, ebx
add eax, 1
cmovns ecx, eax
sub ebp, edx
mov ebx, ebp
mov dword [esp + 0x5c], ecx
imul ebx, dword [esp + 0x38]
lea edi, [ebp - 1]
imul edi, dword [esp + 0x38]
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], edx
cmp edx, ecx
jl 0x1021e821
test ebp, ebp
setg cl
test edx, edx
setg al
cmp cl, al
je 0x1021e43a
test ebp, ebp
jle 0x1021e413
lea eax, [edi + edx]
mov cl, byte [eax + esi]
lea eax, [edx + ebx]
jmp 0x1021e41a
lea eax, [ebx + edx]
mov cl, byte [eax + esi - 1]
mov al, byte [eax + esi]
movzx ebx, al
cmp cl, al
jbe 0x1021e42c
inc ebx
xor ecx, ecx
jmp 0x1021e6f0
xor esi, esi
cmp cl, al
cmove ebx, esi
xor ecx, ecx
jmp 0x1021e6f0
lea eax, [ebx + edx]
mov word [esp + 0x18], 0x202
add esi, eax
lea eax, [edi + edx]
mov edx, dword [esp + 0x40]
mov cl, byte [esi - 1]
mov ch, byte [eax + edx]
mov ah, byte [eax + edx - 1]
mov al, 1
mov byte [esp + 0x14], cl
mov dl, 2
mov byte [esp + 0x15], ch
mov bl, dl
mov byte [esp + 0x16], ah
mov byte [esp + 0x13], al
mov byte [esp + 0x1a], al
cmp cl, ch
jne 0x1021e53f
or ch, 0xff
mov dl, 4
cmp cl, ah
movzx edx, dl
mov byte [esp + 0x15], ch
cmove edx, dword [esp + 0x48]
setne bh
mov byte [esp + 0x18], dl
add bh, 0xfe
add bh, 3
mov byte [esp + 0x70], bh
cmp bh, 1
jbe 0x1021e514
cmp ch, 0xff
jne 0x1021e4b3
mov bl, 1
mov ch, ah
mov byte [esp + 0x19], bl
mov byte [esp + 0x15], ch
cmp dl, bl
jb 0x1021e4bd
jne 0x1021e4e1
cmp cl, ch
jbe 0x1021e4e1
mov al, dl
mov byte [esp + 0x12], ch
mov dl, bl
mov byte [esp + 0x14], ch
mov bl, al
mov byte [esp + 0x18], dl
mov al, byte [esp + 0x13]
mov ch, cl
mov cl, byte [esp + 0x12]
mov byte [esp + 0x19], bl
mov byte [esp + 0x15], ch
cmp bh, 2
jbe 0x1021e514
cmp dl, 1
jae 0x1021e500
mov byte [esp + 0x14], ah
mov al, dl
mov ah, cl
mov byte [esp + 0x18], 1
mov byte [esp + 0x1a], al
mov byte [esp + 0x16], ah
cmp bl, al
jae 0x1021e514
mov byte [esp + 0x19], al
mov byte [esp + 0x15], ah
mov byte [esp + 0x1a], bl
mov byte [esp + 0x16], ch
mov dl, byte [esi]
xor eax, eax
mov cl, byte [esp + 0x70]
movzx ebx, dl
mov dword [esp + 0x20], ebx
movzx esi, cl
test cl, cl
je 0x1021e63d
nop
mov cl, byte [esp + eax + 0x14]
cmp cl, dl
jbe 0x1021e56f
inc ebx
mov dword [esp + 0x20], ebx
jmp 0x1021e571
cmp cl, ah
jne 0x1021e554
mov dl, 3
mov bh, 2
mov byte [esp + 0x18], dl
mov byte [esp + 0x70], bh
jmp 0x1021e4a2
xor bh, bh
cmp ch, ah
jne 0x1021e496
mov bl, 3
mov bh, dl
mov byte [esp + 0x19], bl
mov byte [esp + 0x70], bh
jmp 0x1021e4a2
je 0x1021e578
inc eax
cmp eax, esi
jl 0x1021e530
jmp 0x1021e57e
mov ebx, eax
mov dword [esp + 0x20], ebx
xor cl, cl
xor eax, eax
mov dword [esp + 0x1c], ecx
cmp esi, 0x20
jb 0x1021e64b
cmp dword [0x10b47804], 6
jl 0x1021e64b
mov ecx, esi
xorps xmm4, xmm4
and ecx, 0xffffffe0
xorps xmm3, xmm3
nop word [eax + eax]
vpmovzxbw ymm2, xmmword [eax + 0x1089874c]
vpmovzxbw ymm0, xmmword [esp + eax + 0x18]
vpmullw ymm0, ymm2, ymm0
vpmovzxbw ymm2, xmmword [esp + eax + 0x28]
vpmovzxwd zmm0, ymm0
vpmovdb xmm0, zmm0
paddb xmm4, xmm0
vpmovzxbw ymm0, xmmword [eax + 0x1089875c]
vpmullw ymm0, ymm2, ymm0
vpmovzxwd zmm0, ymm0
add eax, 0x20
vpmovdb xmm0, zmm0
paddb xmm3, xmm0
cmp eax, ecx
jl 0x1021e5b0
paddb xmm3, xmm4
movaps xmm0, xmm3
psrldq xmm0, 8
paddb xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 4
paddb xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 2
paddb xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 1
paddb xmm3, xmm0
movd ecx, xmm3
mov dword [esp + 0x1c], ecx
jmp 0x1021e64f
xor cl, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ecx
xor eax, eax
jmp 0x1021e64f
mov ecx, dword [esp + 0x1c]
xor dl, dl
mov byte [esp + 0x12], dl
mov byte [esp + 0x70], dl
cmp eax, esi
jge 0x1021e6e2
mov ecx, esi
sub ecx, eax
cmp ecx, 2
jl 0x1021e6b5
lea ebp, [esi - 1]
mov bl, dl
nop
movzx ecx, byte [esp + eax + 0x18]
movzx edx, byte [eax + 0x1089874c]
imul edx, ecx
movzx ecx, byte [eax + 0x1089874d]
add bl, dl
movzx edx, byte [esp + eax + 0x19]
imul edx, ecx
add eax, 2
mov cl, byte [esp + 0x70]
mov edi, eax
add cl, dl
mov byte [esp + 0x70], cl
cmp eax, ebp
jl 0x1021e670
mov byte [esp + 0x12], bl
mov dl, bl
mov ebx, dword [esp + 0x20]
mov byte [esp + 0x70], cl
cmp edi, esi
jge 0x1021e6d2
movzx ecx, byte [esp + eax + 0x18]
movzx eax, byte [eax + 0x1089874c]
imul eax, ecx
mov ecx, dword [esp + 0x1c]
add cl, al
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x70]
mov ebp, dword [esp + 0x2c]
add dl, cl
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
add cl, dl
mov edx, dword [esp + 0x24]
movzx eax, cl
mov ecx, 9
sub ecx, eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x70], ecx
je 0x1021e71e
mov esi, dword [esp + 0x28]
add esi, 0xfffffffe
lea eax, [ecx + esi*4]
mov ecx, dword [esp + 0x34]
add eax, esi
lea eax, [ebx + eax*8]
mov ebx, dword [esp + 0x4c]
add ecx, dword [ebx + eax*4]
mov dword [esp + 0x34], ecx
jmp 0x1021e806
mov esi, dword [esp + 0x74]
mov al, bl
mov edx, dword [esi]
xor al, byte [edx]
and al, 7
xor byte [edx], al
mov edx, dword [esi]
mov al, byte [esp + 0x70]
shl al, 4
mov cl, byte [edx]
and cl, 0xf
or cl, al
mov byte [edx], cl
inc dword [esi]
cmp dword [esp + 0x80], 0
je 0x1021e802
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
lea ecx, [esi - 2]
lea eax, [eax + ecx*4]
add eax, ecx
mov ecx, dword [esp + 0x50]
lea eax, [eax + eax*8]
lea ebp, [ecx + eax*2]
lea eax, [esi*2]
add eax, ebp
mov dword [esp + 0x58], eax
movzx eax, word [eax]
mov ecx, eax
xor eax, eax
mov dword [esp + 0x54], ecx
shr ecx, 4
cmp esi, 3
setg al
add eax, 4
add eax, ecx
movsx ecx, bl
movzx edx, ax
xor edi, edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
lea ebx, [edi*2]
movzx esi, word [ebx + ebp]
mov eax, esi
cmp edi, ecx
jge 0x1021e7cb
mov ecx, dword [esp + 0x70]
mov edx, 0x8000
sub edx, eax
sar edx, cl
add edx, esi
movzx eax, dx
mov edx, dword [esp + 0x20]
jmp 0x1021e7d7
mov cx, dx
shr ax, cl
sub si, ax
movzx eax, si
mov ecx, dword [esp + 0x1c]
inc edi
mov word [ebx + ebp], ax
mov eax, dword [esp + 0x28]
dec eax
cmp edi, eax
jl 0x1021e7a2
cmp word [esp + 0x54], 0x20
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x2c]
sbb eax, eax
mov edi, dword [esp + 0x30]
neg eax
add word [ecx], ax
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
dec edx
add ebx, dword [esp + 0x38]
inc ebp
add edi, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
jmp 0x1021e3de
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
inc ebx
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x44], ebx
cmp ebx, dword [esp + 0x60]
jl 0x1021e3b4
mov edx, dword [esp + 0x34]
pop edi
xor eax, eax
cmp dword [esp + 0x78], eax
pop esi
pop ebp
cmovne eax, edx
pop ebx
add esp, 0x5c
ret