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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x1070dd84]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
xorps xmm0, xmm0
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x60], ebx
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x48], eax
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x28], xmm0
mov edi, dword [eax + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [ebx], eax
mov edx, dword [esi + 0x30]
shr eax, 0x10
movsx ecx, ax
movlpd qword [ebp - 0x1f], xmm0
movlpd qword [ebp - 0x17], xmm0
movlpd qword [ebp - 0xf], xmm0
mov dword [ebp - 0x54], 0x18
mov dword [ebp - 0x4c], edi
cmp ecx, edx
jl 0x1021b521
cmp ecx, dword [esi + 0x34]
cmovg ecx, dword [esi + 0x34]
mov edx, ecx
movsx ecx, word [ebx]
movzx edx, dx
mov word [ebx + 2], dx
mov eax, dword [esi + 0x38]
cmp ecx, eax
jl 0x1021b53b
cmp ecx, dword [esi + 0x3c]
cmovg ecx, dword [esi + 0x3c]
mov eax, ecx
movzx eax, ax
mov word [ebx], ax
movsx ecx, ax
mov eax, dword [ebp - 0x48]
push edi
imul ecx, dword [eax + 0x10]
movsx eax, dx
add ecx, eax
mov eax, dword [ebp - 0x48]
add ecx, dword [eax]
push ecx
push dword [ebp - 0x58]
push esi
call fcn.1021cf80
mov edi, eax
lea eax, [esi + 0x64]
push eax
push ebx
call fcn.1021d320
add esp, 0x18
mov byte [ebp - 0x20], 1
add edi, eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x3c], edi
nop
or edx, 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x5c], ebx
nop dword [eax + eax]
mov eax, dword [ebx*8 + 0x10571cbc]
lea ecx, [ebp - 0x38]
add eax, dword [ebp - 0x54]
add ecx, eax
cmp byte [ecx], 1
je 0x1021b760
mov edi, dword [ebp - 0x60]
movzx eax, word [ebx*8 + 0x10571cb8]
mov byte [ecx], 1
add ax, word [edi]
movzx edx, ax
movzx eax, word [ebx*8 + 0x10571cba]
add ax, word [edi + 2]
movzx eax, ax
movsx edi, ax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x68], eax
cmp edi, dword [esi + 0x30]
jl 0x1021b75a
cmp edi, dword [esi + 0x34]
jg 0x1021b75a
movsx ecx, dx
cmp ecx, dword [esi + 0x38]
jl 0x1021b75a
cmp ecx, dword [esi + 0x3c]
jg 0x1021b75a
mov edx, dword [ebp - 0x48]
mov eax, dword [edx + 0x10]
imul eax, ecx
mov ecx, dword [ebp - 0x58]
add eax, edi
mov edi, dword [ecx + 0x10]
add eax, dword [edx]
cmp dword [esi + 0x14], 0
mov edx, dword [ecx]
mov ecx, dword [esi + 0x10]
je 0x1021b63b
push dword [esi + 0x1c]
push dword [esi + 0x18]
push dword [esi + 0x14]
push ecx
push dword [ebp - 0x4c]
push eax
mov eax, dword [esi + 4]
push edi
push edx
mov eax, dword [eax + 0x24]
call eax
mov edi, eax
add esp, 0x20
mov dword [ebp - 0x50], edi
jmp 0x1021b66e
test ecx, ecx
je 0x1021b658
push ecx
push dword [ebp - 0x4c]
push eax
mov eax, dword [esi + 4]
push edi
push edx
mov eax, dword [eax + 8]
call eax
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x50], edi
jmp 0x1021b66e
push dword [ebp - 0x4c]
push eax
mov eax, dword [esi + 0x84]
push edi
push edx
call eax
add esp, 0x10
mov dword [ebp - 0x50], eax
mov edi, eax
cmp edi, dword [ebp - 0x3c]
jae 0x1021b75a
mov ecx, dword [ebp - 0x44]
sub cx, word [esi + 0x68]
mov edx, dword [ebp - 0x68]
sub dx, word [esi + 0x6a]
movzx eax, byte [esi + 0x6c]
shl cx, 3
shl dx, 3
mov dword [ebp - 0x44], ecx
cmp eax, 4
ja case.0x1021b69d.4
jmp dword [eax*4 + 0x1021b7bc]
xor ebx, ebx
test dx, dx
movsx edx, dx
setne bl
xor eax, eax
test cx, cx
mov ecx, 2
cmovne eax, ecx
mov ecx, dword [esi + 0x70]
or ebx, eax
mov eax, dword [esi + 0x78]
mov edi, dword [ecx + ebx*4]
add edi, dword [eax + edx*4]
mov edx, dword [ebp - 0x44]
mov eax, dword [esi + 0x74]
mov ebx, dword [ebp - 0x5c]
movsx ecx, dx
add edi, dword [eax + ecx*4]
imul edi, dword [esi + 0x80]
add edi, 0x100
shr edi, 9
jmp 0x1021b742
movsx eax, dx
cdq
mov edi, eax
movsx eax, cx
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
add edi, eax
shl edi, 5
sar edi, 3
jmp 0x1021b742
movsx eax, dx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov edx, dword [ebp - 0x44]
movsx eax, dx
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov edi, ecx
shl edi, 4
sub edi, ecx
sar edi, 3
jmp 0x1021b742
movsx eax, dx
cdq
mov edi, eax
movsx eax, cx
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
add edi, eax
jmp 0x1021b742
xor edi, edi
mov eax, dword [ebp - 0x50]
add eax, edi
mov edi, dword [ebp - 0x3c]
cmp eax, edi
jae 0x1021b75d
mov edi, eax
mov edx, ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edx
jmp 0x1021b760
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
inc ebx
mov dword [ebp - 0x5c], ebx
cmp ebx, 8
jl 0x1021b590
cmp edx, 0xffffffff
je 0x1021b7a9
mov ebx, dword [ebp - 0x60]
movzx eax, word [edx*8 + 0x10571cb8]
add word [ebx], ax
movzx eax, word [edx*8 + 0x10571cba]
add word [ebx + 2], ax
mov eax, dword [ebp - 0x54]
add eax, dword [edx*8 + 0x10571cbc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp eax, 3
jl 0x1021b580
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10398bef
mov esp, ebp
pop ebp
ret