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

Disassembly:
mov eax, 0x100cd456
call fcn.100bd27c
sub esp, 0x910
push ebx
mov ebx, ecx
mov dword [esp + 0x14], ebx
call fcn.1006ed46
mov eax, dword [ebx]
lea ecx, [esp + 0x2c]
push ecx
push 2
pop ecx
mov edx, dword [eax]
push ecx
xor ecx, ecx
push ecx
push ecx
push eax
call dword [edx + 0x10]
test eax, eax
jne 0x1006f30e
mov eax, dword [esp + 0x2c]
push ebp
push esi
mov esi, dword [esp + 0x38]
push edi
push 8
mov dword [ebx + 0x68], eax
xor edi, edi
mov dword [ebx + 0x6c], esi
mov dword [ebx + 0x58], 0xb
mov dword [esp + 0x28], 1
pop ebp
mov ecx, 0x100
mov edx, ecx
mov ecx, dword [ebx + 0x58]
shl edx, cl
cmp edi, esi
ja 0x1006f2fb
jb 0x1006f297
cmp edx, eax
jae 0x1006f2fb
mov eax, dword [ebx]
push edi
push edi
push edi
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x1006f30b
mov ecx, dword [ebx + 0x58]
lea eax, [esp + 0x14]
xor esi, esi
lea edx, [esp + 0x120]
inc esi
shl esi, cl
mov ecx, dword [ebx]
push eax
mov dword [esp + 0x18], esi
call fcn.1000a0c1
test eax, eax
jne 0x1006f30b
cmp dword [esp + 0x14], esi
jne 0x1006f2f3
push dword [esp + 0x14]
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x18]
call fcn.1006fcb6
test eax, eax
jne 0x1006f2f3
push 2
pop eax
cmp word [esp + 0x10], ax
je 0x1006f31f
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
add dword [ebx + 0x58], 0xfffffffd
cmp dword [ebx + 0x58], ebp
jae 0x1006f281
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x914]
pop ebx
mov dword fs:[0], ecx
leave
ret
mov ecx, dword [ebx + 0x58]
mov eax, 0x101
mov ebp, dword [esp + 0x134]
xor edx, edx
mov esi, dword [esp + 0x130]
shl eax, cl
mov dword [ebx + 0x60], eax
mov eax, ebp
mov dword [ebx + 0x64], edi
mov byte [ebx + 0x70], 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], ebp
call fcn.100bd810
add eax, esi
mov ecx, ebx
adc edx, edi
push edx
push eax
call fcn.10070569
mov eax, dword [esp + 0x13c]
xor edx, edx
mov ecx, dword [ebx + 0x58]
call fcn.100bd810
add eax, dword [esp + 0x138]
mov ecx, ebx
adc edx, edi
push edx
push eax
call fcn.10070569
mov ecx, dword [ebx + 0x58]
xor edx, edx
inc edx
xor esi, esi
xor eax, eax
bts esi, ecx
mov edi, edx
shl edi, cl
cmp ecx, 0x20
cmovae eax, esi
xor esi, eax
cmp ecx, 0x40
cmovae eax, esi
test eax, eax
ja 0x1006f653
jb 0x1006f3b5
cmp esi, dword [esp + 0x10]
ja 0x1006f653
mov dword [esp + 0x1c], edx
mov ecx, dword [ebx + 0x58]
mov eax, ebp
xor edx, edx
call fcn.100bd810
mov ecx, dword [ebx]
mov ebp, eax
push 0
push 0
mov eax, edx
mov esi, dword [ecx]
push eax
push ebp
push ecx
mov dword [esp + 0x44], eax
call dword [esi + 0x10]
test eax, eax
jne 0x1006f30b
mov ecx, dword [ebx]
lea edx, [esp + 0x120]
push edi
call fcn.1000a134
mov edx, eax
xor eax, eax
inc eax
cmp edx, eax
jne 0x1006f41c
xor ecx, ecx
mov esi, edi
add esi, ebp
adc ecx, dword [esp + 0x30]
cmp ecx, dword [ebx + 0x6c]
jb 0x1006f653
ja 0x1006f419
cmp esi, dword [ebx + 0x68]
jbe 0x1006f653
mov byte [ebx + 0x72], al
test edx, edx
jne 0x1006f653
push edi
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x1c]
call fcn.1006fcb6
test eax, eax
jne 0x1006f30b
push 8
pop eax
cmp word [esp + 0x14], ax
je 0x1006f668
cmp word [esp + 0x14], 5
jne 0x1006f4bd
xor eax, eax
cmp dword [ebx + 0x2c], 0x40
jae 0x1006f30a
or dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x928], eax
lea ecx, [ebx + 0x28]
mov ax, word [esp + 0x136]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
push eax
call fcn.1006eb69
or dword [esp + 0x928], 0xffffffff
push 0
call fcn.1000366d
pop ecx
jmp 0x1006f61b
push 6
pop eax
cmp word [esp + 0x14], ax
jne 0x1006f61b
cmp dword [ebx + 0x38], 0x40
jae 0x1006f308
lea ecx, [esp + 0x78]
call fcn.1006e9b5
push 0x80
lea eax, [esp + 0x178]
mov dword [esp + 0x92c], 1
push eax
lea eax, [esp + 0x80]
push eax
call fcn.100bc0d0
mov eax, dword [esp + 0x200]
add esp, 0xc
mov dword [esp + 0xf8], eax
cmp eax, 0x200
jb 0x1006f65a
cmp eax, 0x40000000
ja 0x1006f65a
mov eax, dword [esp + 0x218]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x100], eax
mov ax, word [esp + 0x220]
mov word [esp + 0x104], ax
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x30], eax
cmp eax, 0x40
ja 0x1006f65a
and dword [esp + 0x18], 0
mov esi, 0x1b8
test eax, eax
je 0x1006f5fd
lea ebp, [esi + 2]
lea eax, [esp + 0x2d8]
sub ebp, eax
lea eax, [esi + ebp]
lea eax, [esp + eax + 0x120]
cmp eax, edi
ja 0x1006f65a
mov dl, byte [esp + esi + 0x121]
mov cl, byte [esp + esi + 0x120]
movzx eax, dl
add eax, esi
mov byte [esp + 0x28], cl
cmp eax, edi
ja 0x1006f65a
cmp cl, 1
jne 0x1006f65a
cmp dl, 6
jne 0x1006f65a
mov ax, word [esp + esi + 0x124]
lea ecx, [esp + 0x108]
push 6
mov word [esp + 0x2e], ax
pop eax
add esi, eax
lea eax, [esp + 0x28]
push eax
call fcn.1006ebb4
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x30]
jb 0x1006f588
lea eax, [esp + 0x78]
push eax
lea ecx, [ebx + 0x34]
call fcn.1006eb1b
or dword [esp + 0x928], 0xffffffff
lea ecx, [esp + 0x78]
call fcn.1006d7f6
mov ebp, dword [esp + 0x34]
xor edi, edi
mov eax, dword [esp + 0x1c]
inc ebp
mov ecx, dword [ebx + 0x58]
inc eax
inc edi
mov dword [esp + 0x34], ebp
xor edx, edx
mov dword [esp + 0x1c], eax
shl edi, cl
call fcn.100bd810
test edx, edx
ja 0x1006f650
jb 0x1006f3b9
cmp eax, dword [esp + 0x10]
jbe 0x1006f3b9
xor edx, edx
inc edx
mov eax, edx
jmp 0x1006f30b
lea ecx, [esp + 0x78]
call fcn.1006d7f6
jmp 0x1006f308
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0x28], xmm0
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
cmp dword [ebx + 0x38], esi
jbe 0x1006f71f
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov eax, dword [ebx + 0x34]
xor ebp, ebp
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x10], ecx
cmp dword [ecx + 0x94], ebp
jbe 0x1006f70d
mov eax, dword [ecx + 0x90]
xor edi, edi
mov edx, dword [eax + ebp*4]
cmp edi, dword [ebx + 0x2c]
jae 0x1006f6fe
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx]
movzx ebx, word [edx + 2]
cmp word [eax], bx
mov ebx, dword [esp + 0x20]
je 0x1006f6cd
inc edi
add ecx, 4
cmp edi, dword [ebx + 0x2c]
jb 0x1006f6b3
jmp 0x1006f6f7
cmp dword [eax + 0xc], 0
jl 0x1006f6dc
cmp dword [eax + 0xc], esi
jne 0x1006f308
mov dword [edx + 4], edi
xor edx, edx
mov dword [eax + 0xc], esi
mov eax, dword [eax + 8]
mov ecx, dword [ebx + 0x58]
call fcn.100bd810
add dword [esp + 0x18], eax
adc dword [esp + 0x14], edx
mov ecx, dword [esp + 0x10]
cmp edi, dword [ebx + 0x2c]
je 0x1006f308
inc ebp
cmp ebp, dword [ecx + 0x94]
jb 0x1006f6a0
inc esi
cmp esi, dword [ebx + 0x38]
jb 0x1006f68c
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
push edx
push edi
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x1006f30b
xor edx, edx
mov ebp, edx
cmp dword [ebx + 0x38], edx
jbe 0x1006f8be
mov eax, dword [ebx + 0x34]
lea edi, [esp + 0x6c]
mov eax, dword [eax + ebp*4]
mov dword [esp + 0x20], eax
lea esi, [eax + 0x84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x6c]
and edi, 0x3fffffff
cmp edi, 0x200
jb 0x1006f308
push edi
call fcn.10003645
mov esi, eax
mov dword [esp + 0x30], edi
pop ecx
mov dword [esp + 0x28], esi
push 2
pop eax
mov dword [esp + 0x928], eax
mov ecx, ebx
push esi
lea eax, [esp + 0x70]
push eax
push ebp
call fcn.1006fe3c
test eax, eax
jne 0x1006fb3f
push edi
push esi
lea ecx, [esp + 0x18]
call fcn.1006fcb6
test eax, eax
jne 0x1006fb3f
mov eax, 0x10a
cmp word [esp + 0x10], ax
je 0x1006fb3c
add eax, 0xfffffff6
cmp word [esp + 0x10], ax
jne 0x1006fb43
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
push 0xc
lea eax, [esi + 0x10]
mov byte [esp + 0x92c], 3
push eax
lea eax, [esp + 0x50]
push eax
call fcn.100bc0d0
mov eax, dword [esi + 0x190]
lea ecx, [esp + 0x54]
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x194]
mov dword [esp + 0x58], eax
mov ax, word [esi + 0x198]
push ecx
lea ecx, [edi + 0x9c]
mov word [esp + 0x60], ax
call fcn.1006ea85
push dword [esp + 0x60]
call fcn.1000366d
or dword [esp + 0x92c], 0xffffffff
push esi
call fcn.1000366d
xor edx, edx
mov esi, edx
pop ecx
pop ecx
cmp dword [edi + 0xa0], edx
jbe 0x1006f8b4
lea ecx, [ebx + 0x4c]
mov eax, dword [edi + 0x9c]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x20], eax
call fcn.1006ebe1
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push 0x400
add eax, 0xc
push eax
push esi
push ebp
call fcn.1006ff21
test eax, eax
jne 0x1006f30b
push 0x400
push 0xffffffffffffffff
push dword [esp + 0x28]
mov ecx, ebx
push dword [esp + 0x28]
call fcn.1006ee27
test eax, eax
jne 0x1006f30b
inc esi
lea ecx, [ebx + 0x4c]
cmp esi, dword [edi + 0xa0]
jb 0x1006f851
xor edx, edx
inc ebp
cmp ebp, dword [ebx + 0x38]
jb 0x1006f73d
mov ebp, edx
mov dword [esp + 0x24], edx
cmp dword [ebx + 0x38], edx
jbe 0x1006fa47
mov eax, dword [ebx + 0x34]
mov esi, edx
mov dword [esp + 0x14], edx
mov ecx, dword [eax + ebp*4]
mov dword [esp + 0x18], ecx
cmp dword [ecx + 0xa0], edx
jbe 0x1006fa39
mov eax, dword [ecx + 0x9c]
mov dword [esp + 0x34], edx
mov eax, dword [eax + esi*4]
mov dword [esp + 0x28], eax
cmp dword [eax + 0x1c], 0
jbe 0x1006fa25
mov eax, dword [ecx + 0x9c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [ebx + 0x40]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov eax, dword [edi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x20], eax
call fcn.1006e3bd
test al, al
je 0x1006fa0b
mov ecx, edi
call fcn.1006d844
test al, al
je 0x1006fa0b
push edi
push ebp
mov ecx, ebx
call fcn.1006ec9e
test al, al
je 0x1006fa0b
xor edx, edx
mov dword [esp + 0x10], edx
cmp dword [edi + 0x40], edx
jbe 0x1006fa0b
mov ebp, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [edi + 0x3c]
add eax, ecx
mov dword [esp + 0x44], eax
mov ecx, dword [eax + 4]
and ecx, 0x3fffffff
mov dword [esp + 0x40], ecx
je 0x1006f9ea
cmp dword [esp + 0x20], 0
jb 0x1006fa03
ja 0x1006f9a0
cmp dword [esp + 0x30], ecx
jb 0x1006fa03
mov ecx, dword [eax + 8]
xor edx, edx
mov eax, dword [ebp + 0x90]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x58]
mov eax, dword [eax + 4]
call fcn.100bd810
mov ecx, edx
mov esi, eax
mov edx, dword [esp + 0x44]
mov eax, dword [ebp + 0x80]
mul dword [edx]
add esi, eax
adc ecx, edx
add esi, dword [esp + 0x40]
adc ecx, 0
push ecx
push esi
mov ecx, ebx
call fcn.10070569
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc edx
add ecx, 0xc
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
cmp edx, dword [edi + 0x40]
jb 0x1006f979
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
cmp edx, dword [eax + 0x1c]
jb 0x1006f904
inc esi
push 0
mov dword [esp + 0x18], esi
pop edx
cmp esi, dword [ecx + 0xa0]
jb 0x1006f8e9
inc ebp
mov dword [esp + 0x24], ebp
cmp ebp, dword [ebx + 0x38]
jb 0x1006f8cd
mov ecx, dword [ebx + 0x58]
xor ebp, ebp
mov edx, dword [ebx + 0x60]
inc ebp
mov edi, dword [esp + 0x3c]
shl ebp, cl
mov ecx, dword [ebx + 0x64]
mov dword [esp + 0x1c], ebp
mov byte [ebx + 0x73], 1
lea esi, [ebp - 1]
add edx, esi
not esi
adc ecx, 0
xor eax, eax
not eax
and edx, esi
and ecx, eax
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], ecx
cmp ecx, edi
ja 0x1006fb9c
mov esi, dword [esp + 0x38]
jb 0x1006fa8f
cmp edx, esi
jae 0x1006fb9c
mov eax, dword [ebx]
sub esi, edx
push 0
push 0
push dword [ebx + 0x64]
sbb edi, ecx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x1006f30b
xor edx, edx
mov dword [esp + 0x10], edx
mov eax, esi
or eax, edi
je 0x1006fb8e
mov dword [esp + 0x18], ebp
cmp edx, edi
jb 0x1006facd
ja 0x1006fac9
cmp ebp, esi
jbe 0x1006facd
mov dword [esp + 0x18], esi
mov ecx, dword [ebx]
lea eax, [esp + 0x18]
push eax
lea edx, [esp + 0x124]
call fcn.1000a0c1
test eax, eax
jne 0x1006f30b
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x1006fb8a
cmp ebp, dword [esp + 0x1c]
jne 0x1006fb53
cmp byte [ebx + 0x73], al
je 0x1006fb53
push ebp
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x30]
call fcn.1006fcb6
test eax, eax
jne 0x1006fb53
push 2
pop eax
cmp word [esp + 0x28], ax
jne 0x1006fb53
mov ecx, dword [esp + 0x38]
xor edx, edx
mov eax, dword [esp + 0x3c]
sub esi, ebp
mov byte [ebx + 0x73], dl
sbb edi, edx
sub ecx, esi
mov dword [ebx + 0x60], ecx
sbb eax, edi
mov dword [ebx + 0x64], eax
jmp 0x1006fb71
xor eax, eax
inc eax
mov dword [esp + 0x24], eax
push esi
call fcn.1000366d
mov eax, dword [esp + 0x28]
pop ecx
jmp 0x1006f30b
xor edx, edx
mov eax, edx
test ebp, ebp
je 0x1006fb69
cmp byte [esp + eax + 0x120], dl
jne 0x1006fb69
inc eax
cmp eax, ebp
jb 0x1006fb5b
cmp eax, ebp
jne 0x1006fb8a
sub esi, ebp
sbb edi, edx
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x400
jb 0x1006fab1
or esi, edi
jne 0x1006fb9c
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x64], eax
xor eax, eax
jmp 0x1006f30b