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

Disassembly:
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xa8]
cmp dword [edi + 0x58], 2
jl 0x1006939d
cmp dword [edi + 4], 0
lea ebp, [edi + 4]
je 0x100689c7
mov ebx, dword [edi + 0x34]
cmp ebx, 0xffffffff
jle 0x100689c7
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0x38], xmm0
test ebx, ebx
jle 0x100689bd
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], eax
push esi
push edi
call fcn.100693b0
add esp, 8
add ebp, eax
adc dword [esp + 0x24], edx
inc esi
cmp esi, ebx
jl 0x10068997
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2c], ebp
lea ebp, [edi + 4]
mov ebx, dword [esp + 0x2c]
jmp 0x100689d7
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
jmp 0x100689cf
mov ebx, 0xffffff7d
or esi, 0xffffffff
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ebx
cmp dword [ebp], 0
jne 0x100689ed
pop edi
pop esi
pop ebp
mov eax, 0xffffff76
pop ebx
add esp, 0x94
ret
mov eax, dword [esp + 0xb0]
test eax, eax
jl 0x1006939d
mov ebp, dword [esp + 0xac]
jg 0x10068a0d
test ebp, ebp
jb 0x1006939d
cmp eax, esi
jg 0x1006939d
jl 0x10068a1f
cmp ebp, ebx
ja 0x1006939d
mov edx, dword [edi + 0x34]
sub edx, 1
mov dword [esp + 0x34], edx
js 0x10068a63
mov eax, dword [edi + 0x44]
mov ecx, edx
shl ecx, 4
add eax, 8
add eax, ecx
mov ecx, dword [esp + 0xb0]
nop
sub ebx, dword [eax]
sbb esi, dword [eax + 4]
cmp ecx, esi
jg 0x10068a57
jl 0x10068a4f
cmp ebp, ebx
jae 0x10068a57
sub eax, 0x10
sub edx, 1
jns 0x10068a40
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], edx
mov eax, dword [edi + 0x38]
lea ebx, [edi + 0x3c]
mov ecx, dword [eax + edx*8 + 8]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov dword [esp + 0x1c], ecx
mov ecx, edx
shl ecx, 4
mov ebp, dword [eax + edx*8]
mov esi, dword [eax + edx*8 + 4]
mov eax, dword [edi + 0x44]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], esi
mov edi, dword [eax + ecx + 4]
mov edx, dword [eax + ecx]
mov dword [esp + 0x28], edi
mov edi, edx
add edi, dword [eax + ecx + 8]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x28]
adc eax, ecx
mov dword [esp + 0x70], eax
mov eax, edx
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], edi
sbb ecx, dword [esp + 0x24]
add eax, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
adc ecx, dword [esp + 0xb0]
mov dword [esp + 0x30], ecx
or ecx, 0xffffffff
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x64], edx
cmp ebp, eax
jne 0x10068b41
cmp esi, ecx
jne 0x10068b41
push esi
push ebp
push edi
call fcn.100683a0
cdq
add esp, 0xc
mov esi, eax
mov ecx, esi
or ecx, edx
jne 0x10069360
push ecx
push 1
lea eax, [esp + 0x7c]
push eax
push edi
call fcn.100679d0
add esp, 0x10
mov esi, eax
test edx, edx
jl 0x10069360
jg 0x10069283
test esi, esi
jb 0x10069360
jmp 0x10069283
xorps xmm0, xmm0
xor edx, edx
movlpd qword [esp + 0x40], xmm0
cmp esi, ecx
jg 0x10069277
jl 0x10068b5e
cmp ebp, eax
jae 0x10069277
lea edx, [edi + 8]
mov dword [esp + 0x38], 0
nop dword [eax]
mov ebx, eax
mov dword [esp + 0x14], edx
sub ebx, ebp
mov eax, ecx
sbb eax, esi
mov dword [esp + 0x40], eax
test eax, eax
jg 0x10068b9e
jl 0x10068b8e
cmp ebx, 0x10000
jae 0x10068b9e
lea edx, [edi + 8]
mov ebx, ebp
mov ebp, esi
mov dword [esp + 0x14], edx
jmp 0x10068c38
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x28]
call fcn.1006e410
mov edx, dword [esp + 0x40]
mov ecx, ebx
movsd qword [esp + 0x5c], xmm0
call fcn.1006e410
movsd xmm1, qword [esp + 0x5c]
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
sbb edx, dword [esp + 0x28]
mulsd xmm1, xmm0
movsd qword [esp + 0x5c], xmm1
call fcn.1006e410
movsd xmm1, qword [esp + 0x5c]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.1006e310
mov ecx, dword [esp + 0x10]
mov ebx, eax
add ebx, ecx
mov ebp, edx
mov edx, ecx
mov eax, esi
adc ebp, esi
sub ebx, 0x10000
sbb ebp, 0
add edx, 0x10000
adc eax, 0
cmp ebp, eax
jg 0x10068c34
jl 0x10068c27
cmp ebx, edx
jae 0x10068c34
lea edx, [edi + 8]
mov ebx, ecx
mov ebp, esi
mov dword [esp + 0x14], edx
jmp 0x10068c38
mov edx, dword [esp + 0x14]
mov ecx, dword [edi]
test ecx, ecx
je 0x10069353
cmp dword [edx], ebx
jne 0x10068c4b
cmp dword [edx + 4], ebp
je 0x10068c83
mov eax, dword [edi + 0x2c4]
test eax, eax
je 0x10068f21
push 0
push ebp
push ebx
push ecx
call eax
add esp, 0x10
cmp eax, 0xffffffff
je 0x10068f21
mov esi, dword [esp + 0x14]
lea eax, [edi + 0x18]
push eax
mov dword [esi], ebx
mov dword [esi + 4], ebp
call fcn.100baca0
add esp, 4
mov edx, esi
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov eax, dword [esp + 0x20]
sub ecx, dword [edx]
sbb eax, dword [edx + 4]
push eax
push ecx
lea eax, [esp + 0x7c]
push eax
push edi
call fcn.100679d0
mov esi, eax
add esp, 0x10
mov eax, edx
mov dword [esp + 0x68], eax
cmp esi, 0xffffff80
jne 0x10068cb8
cmp eax, 0xffffffff
je 0x10069360
test eax, eax
jg 0x10068d6a
jl 0x10068cca
test esi, esi
jae 0x10068d6a
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add ecx, 1
adc edx, 0
cmp ebp, edx
jl 0x10068ec1
jg 0x10068cea
cmp ebx, ecx
jbe 0x10068ec1
mov eax, ebx
or eax, ebp
je 0x10069360
add ebx, 0xffff0000
adc ebp, 0xffffffff
cmp ebp, dword [esp + 0x18]
jg 0x10068d0f
jl 0x10068d0b
cmp ebx, dword [esp + 0x10]
ja 0x10068d0f
mov ebx, ecx
mov ebp, edx
mov ecx, dword [edi]
test ecx, ecx
je 0x10069353
mov esi, dword [esp + 0x14]
cmp dword [esi], ebx
jne 0x10068d26
cmp dword [esi + 4], ebp
je 0x10068d58
mov eax, dword [edi + 0x2c4]
test eax, eax
je 0x10068f21
push 0
push ebp
push ebx
push ecx
call eax
add esp, 0x10
cmp eax, 0xffffffff
je 0x10068f21
lea eax, [edi + 0x18]
mov dword [esi], ebx
push eax
mov dword [esi + 4], ebp
call fcn.100baca0
add esp, 4
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov esi, dword [esp + 0x40]
jmp 0x10068e9f
lea eax, [esp + 0x74]
mov dword [esp + 0x38], 1
push eax
call fcn.100b9c50
mov ecx, dword [edi + 0x40]
add esp, 4
mov edx, dword [esp + 0x34]
cmp eax, dword [ecx + edx*4]
jne 0x10068e9f
lea eax, [esp + 0x74]
push eax
call fcn.100b9bc0
mov ecx, eax
mov dword [esp + 0x44], edx
and eax, edx
mov dword [esp + 0x60], ecx
add esp, 4
cmp eax, 0xffffffff
je 0x10068e9f
cmp edx, dword [esp + 0x30]
jg 0x10068e17
jl 0x10068dbf
cmp ecx, dword [esp + 0x54]
jae 0x10068e17
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 4]
mov ebp, dword [edx]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
sbb eax, ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x28], ebx
test eax, eax
jg 0x10068f04
jl 0x10068e0c
cmp ecx, 0xac44
ja 0x10068f04
mov ebx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x10068ea3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add eax, 1
adc ecx, 0
cmp ebp, ecx
jl 0x10068ec1
jg 0x10068e37
cmp ebx, eax
jbe 0x10068ec1
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp edi, dword [edx]
mov edi, dword [esp + 0xa8]
jne 0x10068ee2
mov edi, dword [esp + 0x20]
cmp edi, dword [edx + 4]
mov edi, dword [esp + 0xa8]
jne 0x10068ee2
mov edx, dword [esp + 0x68]
add ebx, 0xffff0000
mov dword [esp + 0x1c], esi
adc ebp, 0xffffffff
mov dword [esp + 0x20], edx
cmp ebp, dword [esp + 0x18]
jg 0x10068e89
jl 0x10068e85
cmp ebx, dword [esp + 0x10]
ja 0x10068e89
mov ebx, eax
mov ebp, ecx
push ebp
push ebx
push edi
call fcn.100683a0
cdq
add esp, 0xc
mov esi, eax
or eax, edx
jne 0x10069360
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x18], eax
jg 0x10068ec1
mov eax, dword [esp + 0x1c]
jl 0x10068c87
cmp dword [esp + 0x10], eax
jb 0x10068c87
mov ecx, dword [esp + 0x58]
mov eax, ecx
mov edx, dword [esp + 0x50]
and eax, edx
cmp eax, 0xffffffff
jne 0x10068f2b
mov ebp, dword [esp + 0x10]
lea ebx, [edi + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x1006927b
mov eax, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x70], ebx
jmp 0x10068f0c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], ecx
jg 0x10068ec1
jl 0x10068f18
cmp ebp, eax
jae 0x10068ec1
mov esi, dword [esp + 0x18]
jmp 0x10068b70
mov esi, 0xffffff80
jmp 0x10069358
push edx
push ecx
push edi
call fcn.100683a0
cdq
add esp, 0xc
mov esi, eax
mov dword [edi + 0x50], 0xffffffff
or eax, edx
mov dword [edi + 0x54], 0xffffffff
jne 0x10069360
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [esp + 0x48]
push eax
push edi
call fcn.100679d0
add esp, 0x10
mov esi, eax
test edx, edx
jl 0x10069360
jg 0x10068f75
test esi, esi
jb 0x10069360
mov ebx, dword [esp + 0x34]
cmp ebx, dword [edi + 0x60]
je 0x10068f99
push edi
call fcn.100672b0
mov eax, dword [edi + 0x40]
mov dword [edi + 0x60], ebx
mov eax, dword [eax + ebx*4]
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], 3
jmp 0x10068fa5
lea eax, [edi + 0x1e0]
push eax
call fcn.10055460
add esp, 4
lea ebp, [edi + 0x78]
push dword [edi + 0x5c]
push ebp
call fcn.100ba7b0
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.100ba320
add esp, 0x10
lea eax, [esp + 0x84]
push eax
push ebp
call fcn.100ba300
cdq
add esp, 8
mov ebx, edx
mov esi, eax
or eax, ebx
jne 0x100691e4
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
mov edi, ebx
mov edx, dword [esp + 0x58]
mov esi, edx
cmp edi, dword [eax + ecx*8 + 4]
mov edi, dword [esp + 0xa8]
jl 0x100691e4
jg 0x10069010
cmp edx, dword [eax + ecx*8]
jbe 0x100691e4
nop
or ecx, 0xffffffff
mov ebp, esi
mov eax, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], ecx
nop
add ebp, 0xffff0000
adc eax, 0xffffffff
mov dword [esp + 0x30], eax
test eax, eax
jg 0x1006904c
jl 0x10069037
test ebp, ebp
jae 0x1006904c
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov edx, dword [edi]
test edx, edx
je 0x1006916f
cmp dword [edi + 8], ebp
jne 0x10069060
cmp dword [edi + 0xc], eax
je 0x1006909b
mov ecx, dword [edi + 0x2c4]
test ecx, ecx
je 0x10069168
push 0
push eax
push ebp
push edx
call ecx
add esp, 0x10
cmp eax, 0xffffffff
je 0x10069168
mov eax, dword [esp + 0x30]
mov dword [edi + 0xc], eax
lea eax, [edi + 0x18]
push eax
mov dword [edi + 8], ebp
call fcn.100baca0
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
cmp edx, ebx
jg 0x10069104
jl 0x100690b0
cmp eax, esi
jae 0x10069104
nop dword [eax + eax]
mov ecx, esi
xorps xmm0, xmm0
sub ecx, eax
mov eax, ebx
movups xmmword [esp + 0x40], xmm0
sbb eax, edx
push eax
push ecx
lea eax, [esp + 0x48]
push eax
push edi
call fcn.100679d0
add esp, 0x10
cmp eax, 0xffffff80
jne 0x100690de
cmp edx, 0xffffffff
je 0x10068f21
test edx, edx
jl 0x10069100
jg 0x100690e8
test eax, eax
jb 0x10069100
mov dword [esp + 0x28], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 8]
cmp edx, ebx
jl 0x100690b0
jg 0x10069100
cmp eax, esi
jb 0x100690b0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x30]
je 0x10069020
cmp dword [esp + 0x44], 0
jne 0x10069162
push edx
push ecx
push edi
call fcn.100683a0
cdq
add esp, 0xc
mov ebx, edx
mov esi, eax
or eax, ebx
jne 0x10069177
push eax
push 0x10000
lea eax, [esp + 0x48]
push eax
push edi
call fcn.100679d0
add esp, 0x10
test edx, edx
jl 0x10069353
jg 0x1006915a
test eax, eax
jb 0x10069353
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov esi, ecx
mov ebx, edx
jmp 0x10069177
mov esi, 0xffffff80
jmp 0x10069174
mov esi, 0xffffff7f
or ebx, 0xffffffff
test ebx, ebx
jl 0x10069360
jg 0x10069189
test esi, esi
jb 0x10069360
lea eax, [esp + 0x40]
push eax
call fcn.100b9c50
add esp, 4
cmp eax, dword [edi + 0x5c]
jne 0x100691c5
lea eax, [esp + 0x40]
push eax
call fcn.100b9bc0
add esp, 4
cmp edx, 0xffffffff
jg 0x10069219
jl 0x100691b4
cmp eax, 0xffffffff
ja 0x10069219
lea eax, [esp + 0x40]
push eax
call fcn.100b9ba0
add esp, 4
test eax, eax
je 0x10069219
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x34]
cmp ebx, dword [eax + ecx*8 + 4]
jg 0x10069010
jl 0x100691e1
cmp esi, dword [eax + ecx*8]
ja 0x10069010
lea ebp, [edi + 0x78]
test ebx, ebx
jl 0x1006926d
jg 0x100691f2
test esi, esi
jb 0x1006926d
mov edx, dword [esp + 0x94]
mov eax, edx
mov esi, dword [esp + 0x98]
and eax, esi
cmp eax, 0xffffffff
jne 0x1006922f
push 0
push ebp
call fcn.100ba2e0
add esp, 8
jmp 0x10068fc2
push ebx
push esi
push edi
call fcn.10069430
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov ecx, dword [edi + 0x60]
mov eax, dword [edi + 0x44]
shl ecx, 4
sub edx, dword [ecx + eax]
sbb esi, dword [ecx + eax + 4]
test esi, esi
jg 0x1006925a
jl 0x10069249
test edx, edx
jae 0x1006925a
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x2c]
mov dword [edi + 0x50], edx
adc esi, dword [esp + 0x24]
mov dword [edi + 0x54], esi
jmp 0x10069310
mov esi, 0xffffff78
jmp 0x10069358
mov esi, dword [esp + 0x40]
test edx, edx
je 0x10069360
mov ecx, dword [ebx]
mov ebx, dword [esp + 0x34]
cmp ebp, dword [ecx + ebx*8]
jne 0x10069360
mov eax, dword [esp + 0x18]
cmp eax, dword [ecx + ebx*8 + 4]
jne 0x10069360
lea eax, [esp + 0x74]
push eax
call fcn.100b9c50
mov ecx, dword [edi + 0x40]
add esp, 4
cmp eax, dword [ecx + ebx*4]
jne 0x10069360
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x54], eax
cmp ebx, dword [edi + 0x60]
je 0x100692e7
push edi
call fcn.100672b0
mov eax, dword [edi + 0x40]
mov dword [edi + 0x60], ebx
mov eax, dword [eax + ebx*4]
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], 3
jmp 0x100692f3
lea eax, [edi + 0x1e0]
push eax
call fcn.10055460
add esp, 4
lea esi, [edi + 0x78]
push dword [edi + 0x5c]
push esi
call fcn.100ba7b0
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.100ba320
add esp, 0x10
mov ebp, dword [esp + 0xb0]
cmp dword [edi + 0x54], ebp
jg 0x10069353
mov ebx, dword [esp + 0xac]
jl 0x1006932a
cmp dword [edi + 0x50], ebx
ja 0x10069353
push 0xffffffffffffffff
push edi
call fcn.100693b0
add esp, 8
cmp ebp, edx
jg 0x10069353
jl 0x1006933f
cmp ebx, eax
ja 0x10069353
xorps xmm0, xmm0
xor eax, eax
movups xmmword [edi + 0x68], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov esi, 0xffffff7f
mov dword [esp + 0x44], 0xffffffff
lea eax, [edi + 0x1e0]
mov dword [edi + 0x50], 0xffffffff
push eax
mov dword [edi + 0x54], 0xffffffff
call fcn.10054a10
lea eax, [edi + 0x250]
push eax
call fcn.10054920
add esp, 8
mov dword [edi + 0x58], 2
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff7d
pop ebx
add esp, 0x94
ret