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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
cmp dword [edi + 0x268], 3
je 0x10017970
cmp byte [edi + 0x264], 0
je 0x10017105
mov ecx, dword [ebp + 8]
call fcn.10016f42
jmp 0x10017108
mov eax, dword [ebp + 8]
cmp byte [edi + 0x51d], 0
mov dword [esp + 0x14], eax
jne 0x1001713e
lea ecx, [edi + 0x238]
call fcn.10039a61
test al, al
jne 0x1001713e
mov esi, dword [ecx + 0x28]
sub esp, 0x10
shl esi, 4
mov edi, esp
add esi, dword [ecx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10039e11
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.1001094b
lea esi, [edi + 0x238]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.10039a61
test al, al
je 0x10017167
cmp byte [edi + 0x264], 0
je 0x10017167
mov cl, 1
jmp 0x10017169
xor cl, cl
mov edx, dword [esp + 0x14]
lea eax, [edx - 0x97c]
cmp eax, 4
ja 0x1001717f
mov byte [esp + 0xb], 1
jmp 0x100171a7
test cl, cl
je 0x100171a2
mov eax, edx
sub eax, 0x901
je 0x10017178
dec eax
sub eax, 1
je 0x10017178
sub eax, 6
je 0x10017178
dec eax
sub eax, 1
je 0x10017178
sub eax, 0x11
je 0x10017178
mov byte [esp + 0xb], 0
mov ecx, esi
call fcn.10039a61
cmp byte [esp + 0xb], 0
je 0x100173a4
test al, al
je 0x100171c5
add edi, 0x250
jmp 0x100171cd
mov edi, dword [esi + 0x28]
shl edi, 4
add edi, dword [esi]
mov ecx, dword [esp + 0x18]
mov esi, edi
lea edi, [esp + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10039a61
test al, al
jne 0x100171f1
call fcn.10039eac
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov esi, edi
mov dword [esp + 0x10], eax
mov eax, 0x97c
mov dword [esp + 0x1c], esi
cmp edx, eax
ja 0x1001729d
je 0x10017252
sub edx, 0x901
je 0x10017252
dec edx
sub edx, 1
je 0x100172f0
sub edx, 6
je 0x100172cc
dec edx
sub edx, 1
je 0x100172b8
sub edx, 0x11
jne 0x10017398
mov eax, dword [esp + 0xc]
push edi
mov ecx, dword [eax + 0x298]
call fcn.10009fad
jmp 0x100172c8
mov esi, dword [esp + 0xc]
push edi
mov ecx, dword [esi + 0x298]
call fcn.10009f6d
test al, al
je 0x10017278
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10017278
lea ecx, [eax - 1]
test ecx, ecx
jmp 0x1001731d
test byte [esi + 0x524], 4
je 0x10017295
mov ecx, dword [esi + 0x298]
push edi
call fcn.1000bb47
test eax, eax
jle 0x10017394
lea esi, [edi - 1]
jmp 0x10017326
sub edx, 0x97d
je 0x100172f0
sub edx, 1
je 0x100172cc
sub edx, 1
je 0x10017240
sub edx, 1
jne 0x10017398
mov eax, dword [esp + 0xc]
push edi
mov ecx, dword [eax + 0x298]
call fcn.10009f54
mov esi, eax
jmp 0x10017326
mov eax, dword [esp + 0xc]
push dword [esp + 0x40]
mov esi, dword [eax + 0x298]
add esi, 4
push esi
mov edi, dword [esi]
call dword [edi + 0x14]
push eax
push esi
call dword [edi + 0x18]
mov edi, dword [esp + 0x40]
mov esi, eax
jmp 0x10017326
mov esi, dword [esp + 0xc]
test byte [esi + 0x524], 1
je 0x10017323
mov edx, dword [ecx + 0x28]
mov eax, dword [ecx]
add edx, edx
mov ecx, dword [esi + 0x298]
push dword [eax + edx*8]
call fcn.10009f6d
test al, al
je 0x10017323
mov ecx, dword [esp + 0x44]
add ecx, 1
js 0x10017394
mov esi, edi
jmp 0x10017328
lea esi, [edi + 1]
xor ecx, ecx
cmp esi, edi
je 0x1001739c
xor eax, eax
cmp esi, edi
setge al
push ecx
mov ecx, dword [esp + 0x10]
push esi
lea eax, [eax*2 - 1]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1001161d
mov edx, dword [esp + 0xc]
lea esi, [esp + 0x30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
lea edi, [edx + 0x250]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, edx
mov dword [edx + 0x268], 2
mov dword [esp + 0x3c], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10010613
mov esi, dword [esp + 0x18]
jmp 0x1001793c
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp ecx, dword [esp + 0x44]
jmp 0x10017330
test al, al
je 0x10017471
mov ecx, edx
call fcn.1001702b
mov ecx, esi
test eax, eax
jle 0x100173cb
lea eax, [esp + 0x78]
push eax
call fcn.10039a8e
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
jmp 0x100173da
lea eax, [esp + 0x68]
push eax
call fcn.10039a8e
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x28]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
sub eax, 0x908
je 0x1001741d
dec eax
sub eax, 1
je 0x1001740f
sub eax, 0x11
jne 0x1001743a
push ecx
mov ecx, dword [edi + 0x298]
call fcn.10009fad
jmp 0x10017436
push ecx
mov ecx, dword [edi + 0x298]
call fcn.10009f54
jmp 0x10017436
mov esi, dword [edi + 0x298]
add esi, 4
push ecx
push esi
mov edi, dword [esi]
call dword [edi + 0x14]
push eax
push esi
call dword [edi + 0x18]
mov edi, dword [esp + 0xc]
mov ecx, eax
xor edx, edx
mov dword [edi + 0x268], 1
lea esi, [esp + 0x30]
sub esp, 0x10
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov edi, esp
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.10039e11
jmp 0x1001793c
cmp byte [edi + 0x51e], 0
jne 0x1001748c
mov ecx, edi
call fcn.1001094b
mov ecx, esi
call fcn.10039eac
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, ecx
and dword [esp + 0x1c], 0
sar eax, 4
test eax, eax
je 0x1001793c
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, dword [ecx + eax]
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx + eax + 4]
mov dword [esp + 0x54], esi
mov dword [esp + 0x5c], esi
mov esi, dword [ecx + eax]
mov ecx, dword [ecx + eax + 4]
mov eax, 0x92d
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ecx
cmp edx, eax
ja 0x100175c7
je 0x1001764b
add edx, 0xfffff700
cmp edx, 0x2c
ja case.0x100174f8.2316
movzx eax, byte [edx + 0x100179a5]
jmp dword [eax*4 + 0x1001797d]
test ecx, ecx
je 0x10017515
lea eax, [ecx - 1]
test eax, eax
js case.0x100174f8.2316
mov ecx, eax
jmp case.0x100174f8.2316
test byte [edi + 0x524], 4
je 0x10017532
mov ecx, dword [edi + 0x298]
push esi
call fcn.1000bb47
test eax, eax
jle 0x1001774c
dec esi
xor ecx, ecx
jmp case.0x100174f8.2316
test byte [edi + 0x524], 2
je 0x1001755c
mov ecx, dword [edi + 0x298]
push esi
call fcn.10009f6d
test al, al
je 0x1001755c
mov ecx, dword [esp + 0x24]
lea eax, [ecx + 1]
jmp 0x10017506
inc esi
jmp 0x10017533
push 0xffffffffffffffff
mov ecx, dword [edi + 0x298]
push esi
call fcn.1000c0ad
mov esi, eax
jmp 0x10017533
push 1
jmp 0x10017561
mov esi, dword [edi + 0x298]
mov ecx, dword [esp + 0x10]
add esi, 4
push ecx
push esi
mov edi, dword [esi]
call dword [edi + 0x14]
push eax
push esi
call dword [edi + 0x18]
mov edi, dword [esp + 0xc]
mov esi, eax
xor ecx, ecx
jmp case.0x100174f8.2316
push 1
push esi
mov ecx, edi
call fcn.10016eda
jmp 0x1001756d
mov ecx, dword [edi + 0x298]
push esi
call fcn.10009fad
jmp 0x1001756d
mov ecx, dword [edi + 0x298]
push esi
call fcn.10009f54
jmp 0x1001756d
push 0
jmp 0x1001759d
mov eax, 0x992
cmp edx, eax
ja 0x10017699
je 0x1001764b
cmp edx, 0x988
ja 0x1001763b
cmp edx, 0x987
jae 0x10017628
cmp edx, 0x956
jb case.0x100174f8.2316
cmp edx, 0x957
jbe 0x10017617
cmp edx, 0x959
ja case.0x100174f8.2316
mov ecx, dword [edi + 0x298]
push esi
call fcn.1000d75a
jmp 0x1001756d
mov ecx, dword [edi + 0x298]
push esi
call fcn.1000d48b
jmp 0x1001756d
push 0xffffffffffffffff
mov ecx, dword [edi + 0x298]
push esi
call fcn.1000c1a9
jmp 0x1001756d
cmp edx, 0x98a
ja case.0x100174f8.2316
push 1
jmp 0x1001762a
push 1
push esi
mov ecx, edi
call fcn.10016eda
push 0
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.1001161d
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x58]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], esi
call fcn.10039738
test al, al
jne case.0x100174f8.2312
mov ecx, dword [esp + 0x2c]
jmp case.0x100174f8.2316
cmp edx, 0x994
jbe 0x10017717
cmp edx, 0x996
jbe 0x100176e4
lea eax, [edx - 0xa5c]
cmp eax, 1
ja case.0x100174f8.2316
mov ecx, dword [edi + 0x298]
push esi
call fcn.10009fad
mov ecx, dword [esp + 0x10]
mov esi, eax
push 1
push ecx
mov ecx, edi
call fcn.10016eda
mov ecx, esi
cmp eax, esi
mov dword [esp + 0x10], ecx
cmovg esi, eax
jmp 0x10017533
mov ecx, dword [edi + 0x298]
push esi
call fcn.10009fad
push 1
push esi
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10016eda
cmp eax, esi
mov esi, dword [esp + 0x10]
jge 0x10017533
cmp eax, esi
jle 0x10017533
jmp 0x1001756d
push 0
push esi
mov ecx, edi
call fcn.10016eda
mov ecx, dword [edi + 0x298]
push esi
mov dword [esp + 0x28], eax
call fcn.10009f54
mov ecx, eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
jg 0x10017745
cmp esi, eax
mov esi, eax
jl 0x10017533
mov esi, ecx
jmp 0x10017533
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
xor eax, eax
cmp esi, edx
jne 0x1001775e
cmp ecx, dword [esp + 0x54]
setge al
push ecx
push esi
mov ecx, edi
lea eax, [eax*2 - 1]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.1001161d
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, 0x956
cmp edx, eax
ja 0x1001783d
je case.0x100177a6.2308
lea eax, [edx - 0x900]
cmp eax, 0x2d
ja case.0x100177a6.2316
movzx eax, byte [eax + 0x100179e5]
jmp dword [eax*4 + 0x100179d5]
mov edi, dword [esp + 0x18]
mov eax, dword [edi]
mov edi, dword [esp + 0x20]
add edi, eax
push edi
lea ecx, [edi + 8]
call fcn.1000ed99
test al, al
je 0x100177fc
mov eax, dword [esi]
mov dword [esp + 0x88], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [esi]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 4]
lea esi, [esp + 0x88]
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x14]
jmp 0x1001790d
lea ecx, [edi + 8]
push edi
call fcn.1003970c
cmp dword [esp + 0x14], 0x900
jne 0x1001781d
test al, al
mov edx, edi
cmovne edx, ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
jmp 0x10017827
test al, al
cmovne ecx, edi
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x68], eax
lea esi, [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
jmp 0x100177f3
mov eax, 0x992
cmp edx, eax
ja 0x100178c0
je case.0x100177a6.2305
mov eax, edx
sub eax, 0x957
je case.0x100177a6.2305
sub eax, 1
je case.0x100177a6.2308
sub eax, 1
je case.0x100177a6.2305
sub eax, 0x2e
je case.0x100177a6.2308
sub eax, 1
je case.0x100177a6.2305
sub eax, 1
je case.0x100177a6.2308
sub eax, 1
jne case.0x100177a6.2316
mov eax, dword [esi]
sub esp, 0x10
mov edx, dword [esp + 0x28]
mov edi, esp
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x30]
mov ecx, dword [edx]
push dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + ecx + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + ecx + 0xc]
lea esi, [esp + 0x44]
mov dword [esp + 0x50], eax
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10039dab
mov edx, dword [esp + 0x14]
lea esi, [esp + 0x30]
jmp 0x10017903
mov eax, edx
sub eax, 0x993
je case.0x100177a6.2308
sub eax, 1
je case.0x100177a6.2305
sub eax, 1
je case.0x100177a6.2308
sub eax, 1
je case.0x100177a6.2305
sub eax, 0xc6
jmp 0x1001786c
mov eax, dword [esi]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [esi]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 4]
lea esi, [esp + 0x78]
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0x18]
mov edi, dword [edi]
add edi, dword [esp + 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
add dword [esp + 0x20], 0x10
lea esi, [edi + 0x238]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, ecx
inc dword [esp + 0x1c]
sar eax, 4
cmp dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
jb 0x100174a9
mov ecx, esi
call fcn.1003a083
mov ecx, dword [esi + 0x28]
mov eax, dword [esi]
add ecx, ecx
mov esi, dword [esp + 0xc]
push 0
push 0xffffffffffffffff
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov ecx, esi
push 1
call fcn.10011301
mov ecx, esi
call fcn.1001094b
mov ecx, esi
call fcn.10011761
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 4