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

Disassembly:
sub esp, 0x470
push ebx
push ebp
push esi
push edi
mov ebx, 7
mov esi, 1
mov edi, ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], esi
call fcn.10083620
cmp dword [edi + 0x98], esi
jne 0x1008395a
mov esi, 0xf
mov ebx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], ebx
lea eax, [ebx + 1]
inc esi
imul esi, eax
push 0x500
push esi
mov ecx, edi
call fcn.10072ba0
mov esi, eax
push str.vng_interpolate__
push esi
mov ecx, edi
call fcn.100721a0
mov dword [esp + 0x10], 0
test ebx, ebx
jl 0x10083c39
lea ecx, [ecx]
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0
jl 0x10083c26
mov eax, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x34], eax
mov edi, edi
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
add ecx, edx
mov dword [esp + ecx*4 + 0x80], esi
mov eax, 0x101796f8
mov dword [esp + 0x1c], 0x40
jmp 0x100839d5
mov eax, dword [0x1029a528]
movsx ebx, byte [eax]
movsx ecx, byte [eax + 1]
inc eax
movsx edx, byte [eax + 1]
inc eax
inc eax
mov dword [esp + 0x20], edx
movsx edx, byte [eax]
inc eax
mov dword [esp + 0x18], edx
movsx edx, byte [eax]
inc eax
mov dword [esp + 0x30], edx
movsx edx, byte [eax]
inc eax
mov dword [esp + 0x24], ecx
mov dword [0x1029a528], eax
mov eax, dword [esp + 0x14]
add ecx, eax
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
lea edx, [ebx + ecx]
push edx
mov ecx, edi
call fcn.10071c20
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x18]
add eax, ecx
push eax
mov eax, dword [esp + 0x14]
add edx, eax
push edx
mov ecx, edi
call fcn.10071c20
cmp eax, ebp
jne 0x10083b4e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
inc ecx
push ecx
push edx
mov ecx, edi
call fcn.10071c20
cmp eax, ebp
jne 0x10083a76
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc ecx
push eax
push ecx
mov ecx, edi
call fcn.10071c20
mov ecx, 2
cmp eax, ebp
je 0x10083a7b
mov ecx, 1
mov eax, ebx
sub eax, dword [esp + 0x20]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jne 0x10083a9f
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
je 0x10083b4e
movzx edx, word [edi + 0xae]
imul edx, ebx
add edx, dword [esp + 0x24]
add esi, 4
lea eax, [ebp + edx*4]
mov dword [esi - 4], eax
movzx ecx, word [edi + 0xae]
imul ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
lea edx, [ebp + ecx*4]
mov dword [esi], edx
add esi, 4
mov dword [esi], eax
mov al, byte [esp + 0x28]
add esi, 4
test al, 1
je 0x10083aea
mov dword [esi], 0
add esi, 4
test al, 2
je 0x10083af7
mov dword [esi], 1
add esi, 4
test al, 4
je 0x10083b04
mov dword [esi], 2
add esi, 4
test al, 8
je 0x10083b11
mov dword [esi], 3
add esi, 4
test al, 0x10
je 0x10083b1e
mov dword [esi], 4
add esi, 4
test al, 0x20
je 0x10083b2b
mov dword [esi], 5
add esi, 4
test al, 0x40
je 0x10083b38
mov dword [esi], 6
add esi, 4
test al, al
jns 0x10083b45
mov dword [esi], 7
add esi, 4
mov dword [esi], 0xffffffff
add esi, 4
sub dword [esp + 0x1c], 1
jne 0x100839d0
mov dword [esi], 0x7fffffff
add esi, 4
mov eax, 0x101796e4
mov dword [esp + 0x1c], 8
jmp 0x10083b76
mov eax, dword [0x1029a528]
movsx ebp, byte [eax]
movzx ecx, word [edi + 0xae]
movsx ebx, byte [eax + 1]
imul ecx, ebp
mov edx, dword [esp + 0x14]
inc eax
add ecx, ebx
inc eax
add ecx, ecx
add ecx, ecx
mov dword [0x1029a528], eax
mov eax, dword [esp + 0x10]
mov dword [esi], ecx
push edx
push eax
mov ecx, edi
add esi, 4
call fcn.10071c20
mov ecx, dword [esp + 0x14]
lea edx, [ebx + ecx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + ebp]
push edx
push ecx
mov ecx, edi
call fcn.10071c20
cmp eax, dword [esp + 0x18]
je 0x10083bff
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea eax, [edx + ebx*2]
lea edx, [ecx + ebp*2]
push eax
push edx
mov ecx, edi
call fcn.10071c20
cmp eax, dword [esp + 0x18]
jne 0x10083bff
movzx eax, word [edi + 0xae]
mov ecx, dword [esp + 0x18]
imul eax, ebp
add eax, ebx
lea edx, [ecx + eax*8]
mov dword [esi], edx
jmp 0x10083c05
mov dword [esi], 0
add esi, 4
sub dword [esp + 0x1c], 1
jne 0x10083b71
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
jle 0x100839b0
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
jle 0x10083990
movzx eax, word [edi + 0xae]
push 8
lea eax, [eax + eax*2]
push eax
mov ecx, edi
call fcn.10072ba0
mov esi, eax
push str.vng_interpolate__
push esi
mov ecx, edi
mov dword [esp + 0x54], esi
call fcn.100721a0
movzx eax, word [edi + 0xae]
lea ecx, [esi + eax*8]
shl eax, 4
add eax, esi
mov dword [esp + 0x44], eax
movzx eax, word [edi + 0xac]
mov ebx, 2
lea edx, [eax - 2]
cmp edx, ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jle 0x10083fa9
mov esi, dword [esp + 0x10]
add esi, 0xfffffffe
mov ecx, esi
and ecx, 0x800000ff
mov dword [esp + 0x34], esi
jns 0x10083cb3
dec ecx
or ecx, 0xffffff00
inc ecx
jne 0x10083cf9
mov ecx, dword [edi + 0x46c8c]
test ecx, ecx
je 0x10083cf9
add eax, 0xfffffffd
cdq
and edx, 0xff
add eax, edx
sar eax, 8
inc eax
push eax
mov eax, esi
cdq
and edx, 0xff
add eax, edx
mov edx, dword [edi + 0x46c90]
sar eax, 8
inc eax
push eax
push 0x400
push edx
call ecx
add esp, 0x10
test eax, eax
jne 0x10084026
movzx eax, word [edi + 0xae]
lea ecx, [eax - 2]
cmp ecx, 2
mov dword [esp + 0x14], 2
jle 0x10083f38
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
shl ecx, 4
add edx, 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], edx
mov edi, edi
imul eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x40860]
add eax, ecx
and ecx, dword [esp + 0x2c]
lea ebx, [edx + eax*8]
add ecx, dword [esp + 0x28]
xor eax, eax
mov esi, dword [esp + ecx*4 + 0x80]
mov ecx, dword [esi]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
cmp ecx, 0x7fffffff
je 0x10083de7
mov eax, dword [esi + 4]
movzx edx, word [ebx + eax*2]
movzx ecx, word [ebx + ecx*2]
sub ecx, edx
mov edx, ecx
sar edx, 0x1f
mov eax, edx
xor eax, ecx
mov ecx, dword [esi + 8]
sub eax, edx
shl eax, cl
mov ecx, dword [esi + 0xc]
lea ecx, [esp + ecx*4 + 0x60]
add esi, 0x14
add dword [ecx], eax
mov ecx, dword [esi - 4]
cmp ecx, 0xffffffff
je 0x10083dd9
add dword [esp + ecx*4 + 0x60], eax
lea ecx, [esp + ecx*4 + 0x60]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x10083dd6
add dword [esp + ecx*4 + 0x60], eax
lea ecx, [esp + ecx*4 + 0x60]
mov ecx, dword [esi + 4]
add esi, 4
cmp ecx, 0xffffffff
jne 0x10083dc3
add esi, 4
mov ecx, dword [esi]
cmp ecx, 0x7fffffff
jne 0x10083d83
mov eax, dword [esp + 0x60]
add esi, 4
mov edx, eax
mov ebp, 1
mov ecx, dword [esp + ebp*4 + 0x60]
cmp edx, ecx
jle 0x10083dfb
mov edx, ecx
cmp eax, ecx
jge 0x10083e01
mov eax, ecx
inc ebp
cmp ebp, 8
jl 0x10083df1
test eax, eax
jne 0x10083e1e
mov ecx, dword [ebx]
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
jmp 0x10083f18
mov ecx, dword [esp + 0x10]
sar eax, 1
add eax, edx
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.10071c20
xor ecx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
jmp 0x10083e60
mov edx, dword [esp + 0x30]
cmp dword [esp + ecx*4 + 0x60], edx
jg 0x10083eae
mov edx, dword [edi + 0x94]
xor eax, eax
test edx, edx
jle 0x10083eaa
cmp eax, dword [esp + 0x18]
jne 0x10083e95
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10083e95
movzx ebp, word [ebx + eax*2]
movzx ecx, word [ebx + ecx*2]
add ebp, ecx
sar ebp, 1
add dword [esp + eax*4 + 0x50], ebp
jmp 0x10083ea1
mov ecx, dword [esi]
add ecx, eax
movzx ecx, word [ebx + ecx*2]
add dword [esp + eax*4 + 0x50], ecx
inc eax
cmp eax, edx
jl 0x10083e76
mov ecx, dword [esp + 0x1c]
inc dword [esp + 0x24]
inc ecx
add esi, 8
cmp ecx, 8
mov dword [esp + 0x1c], ecx
jl 0x10083e60
xor ecx, ecx
cmp dword [edi + 0x94], ecx
jle 0x10083f18
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
lea ecx, [ecx]
movzx esi, word [ebx + edx*2]
cmp ecx, edx
je 0x10083eef
mov edx, dword [esp + 0x18]
mov eax, dword [esp + ecx*4 + 0x50]
sub eax, dword [esp + edx*4 + 0x50]
cdq
idiv dword [esp + 0x24]
mov edx, dword [esp + 0x18]
add esi, eax
cmp esi, 0xffff
jge 0x10083f03
xor eax, eax
test esi, esi
setl al
dec eax
and eax, esi
jmp 0x10083f08
mov eax, 0xffff
mov word [ebp], ax
inc ecx
add ebp, 2
cmp ecx, dword [edi + 0x94]
jl 0x10083ed0
movzx eax, word [edi + 0xae]
mov ecx, dword [esp + 0x14]
add dword [esp + 0x20], 8
inc ecx
lea edx, [eax - 2]
cmp ecx, edx
mov dword [esp + 0x14], ecx
jl 0x10083d30
mov esi, dword [esp + 0x10]
cmp esi, 3
jle 0x10083f72
movzx eax, word [edi + 0xae]
mov edx, dword [esp + 0x3c]
lea ecx, [eax*8 - 0x20]
push ecx
mov ecx, dword [esp + 0x38]
imul ecx, eax
mov eax, dword [edi + 0x40860]
add edx, 0x10
push edx
lea ecx, [eax + ecx*8 + 0x10]
push ecx
call fcn.101541d0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], eax
movzx eax, word [edi + 0xac]
mov dword [esp + 0x3c], edx
inc esi
lea edx, [eax - 2]
cmp esi, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], esi
jl 0x10083c96
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x10]
movzx eax, word [edi + 0xae]
mov edx, dword [esp + 0x3c]
lea ecx, [eax*8 - 0x20]
push ecx
lea ecx, [ebx - 2]
imul ecx, eax
add edx, 0x10
push edx
mov edx, dword [edi + 0x40860]
lea eax, [edx + ecx*8 + 0x10]
push eax
call fcn.101541d0
movzx eax, word [edi + 0xae]
mov edx, dword [esp + 0x4c]
dec ebx
imul ebx, eax
lea ecx, [eax*8 - 0x20]
mov eax, dword [edi + 0x40860]
push ecx
add edx, 0x10
push edx
lea ecx, [eax + ebx*8 + 0x10]
push ecx
call fcn.101541d0
add esp, 0x18
push esi
mov ecx, edi
call fcn.10072be0
mov edx, dword [esp + 0x80]
push edx
mov ecx, edi
call fcn.10072be0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
push 0x102419c0
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], 6
call fcn.101525f9
int3