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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push ebx
mov byte [esp + 0x13], 0
call fcn.10175ad0
test eax, eax
jl 0x10178535
mov eax, dword [ebx + 0xc]
test eax, eax
jbe 0x101772d5
mov ecx, dword [ebx + 0x7f34]
mov ecx, dword [ecx]
jmp 0x101772d7
xor ecx, ecx
xor edx, edx
lea edi, [edx + 2]
test eax, eax
jbe 0x10177332
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x10020
xor esi, esi
or eax, esi
je 0x10177310
mov eax, dword [ecx + 0x88]
cmp eax, 0xffffffff
je 0x1017730b
mov eax, dword [eax + 0x3c]
and eax, 0xfff00000
cmp eax, 0x50a00000
je 0x10177310
mov dword [ecx + 0x28], edi
jmp 0x10177317
mov dword [ecx + 0x28], 0
mov eax, dword [ebx + 0xc]
inc edx
cmp edx, eax
jb 0x10177325
xor ecx, ecx
mov edx, eax
jmp 0x1017732e
mov ecx, dword [ebx + 0x7f34]
mov ecx, dword [ecx + edx*4]
cmp edx, eax
jb 0x101772e0
mov eax, dword [ebx + 0x10]
lea edi, [eax - 1]
cmp eax, edi
jbe 0x10177344
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + edi*4]
jmp 0x10177346
xor eax, eax
cmp edi, dword [ebx + 0x10]
jae 0x101773a6
mov esi, 1
mov ecx, dword [eax + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x11400000
jne 0x10177386
xor ecx, ecx
cmp dword [eax + 8], ecx
jbe 0x10177386
jmp 0x10177370
mov edx, dword [eax + 0xc]
mov edx, dword [edx + ecx*4]
cmp dword [edx + 0x28], 2
je 0x1017737f
mov dword [edx + 0x28], esi
add ecx, esi
cmp ecx, dword [eax + 8]
jb 0x10177370
test edi, edi
je 0x1017739b
mov ecx, dword [ebx + 0x10]
cmp edi, ecx
jae 0x1017739b
mov eax, dword [ebx + 0x14]
sub edi, esi
mov eax, dword [eax + edi*4]
jmp 0x101773a2
mov ecx, dword [ebx + 0x10]
xor eax, eax
mov edi, ecx
cmp edi, ecx
jb 0x10177350
mov dword [esp + 0x10], 0
mov edi, edi
cmp dword [esp + 0x10], 0x3ff
mov edi, dword [ebp + 8]
mov byte [esp + 0xe], 0
jne 0x101773d5
push 0x10090688
xor esi, esi
xor eax, eax
mov ecx, edi
call fcn.10168f10
add esp, 4
mov ecx, dword [edi + 0x10]
lea eax, [ecx - 1]
cmp ecx, eax
jbe 0x101773e7
mov ecx, dword [edi + 0x14]
mov esi, dword [ecx + eax*4]
jmp 0x101773e9
xor esi, esi
mov dword [esp + 0x3c], eax
cmp eax, dword [edi + 0x10]
jae 0x101777f7
mov ecx, dword [esi + 0x3c]
mov edx, ecx
shr edx, 0x1c
mov dword [esp + 0x30], edx
test edx, edx
je 0x101777c8
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x50600000
ja 0x101774aa
je 0x101774bc
cmp eax, 0x50400000
je 0x101774bc
cmp eax, 0x50500000
je 0x101774bc
cmp eax, 0x90200000
jne 0x101775cb
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov edi, dword [edx + 0x28]
xor edx, edx
cmp dword [esi + 8], edx
jbe 0x10177473
mov ebx, dword [ebp + 8]
test edi, edi
je 0x1017746d
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0xe]
push eax
mov eax, dword [ecx + edx*4]
push edi
push eax
mov ecx, ebx
call fcn.10177220
inc edx
cmp edx, dword [esi + 8]
jb 0x10177455
xor edx, edx
test dword [esi], 0xfffffffe
jbe 0x101777c8
mov ebx, dword [ebp + 8]
test edi, edi
je 0x1017749c
mov eax, dword [esi + 4]
lea ecx, [esp + 0xe]
push ecx
mov ecx, dword [eax + edx*4]
push edi
push ecx
mov ecx, ebx
call fcn.10177220
mov eax, dword [esi]
inc edx
shr eax, 1
cmp edx, eax
jb 0x10177484
jmp 0x101777c8
cmp eax, 0x50800000
je 0x101774bc
cmp eax, 0x50900000
jne 0x10177438
mov eax, dword [esi]
and ecx, 0xfffff
xor edx, edx
div ecx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [edx]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x101774eb
lea edx, [esp + 0xe]
push edx
push ecx
mov ecx, dword [ebp + 8]
push eax
call fcn.10177220
mov eax, dword [esi + 0x3c]
and eax, 0xfffff
mov dword [esp + 0x20], eax
mov ebx, 0
jbe 0x101777c8
add eax, eax
add eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + ebx*4]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x20
xor edx, edx
or eax, edx
je 0x10177526
mov dword [ecx + 0x28], 2
mov edi, dword [ecx + 0x28]
test edi, edi
je 0x10177542
mov edx, dword [esi + 4]
mov eax, dword [edx + ebx*4]
lea ecx, [esp + 0xe]
push ecx
mov ecx, dword [ebp + 8]
push edi
push eax
call fcn.10177220
mov eax, dword [esp + 0x14]
dec eax
cmp eax, 1
jbe 0x1017758a
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffffe
mov dword [esp + 0x28], eax
jmp 0x10177560
test edi, edi
je 0x10177579
mov eax, dword [esi + 4]
lea ecx, [esp + 0xe]
push ecx
mov ecx, dword [edx + eax]
push edi
push ecx
mov ecx, dword [ebp + 8]
call fcn.10177220
mov eax, dword [esp + 0x20]
add eax, eax
add eax, eax
add edx, eax
sub dword [esp + 0x28], 1
jne 0x10177560
cmp dword [esp + 0x30], 0
je 0x101775b6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
dec ecx
imul ecx, dword [esp + 0x20]
lea edx, [esp + 0xe]
push edx
mov edx, dword [esi + 4]
add ecx, ebx
push eax
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebp + 8]
push eax
call fcn.10177220
add dword [esp + 0x18], 4
inc ebx
cmp ebx, dword [esp + 0x20]
jb 0x1017750a
jmp 0x101777c8
cmp eax, 0x90000000
jne 0x10177622
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov edi, dword [eax + 0x28]
test edi, edi
je 0x101775ed
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xe]
push edx
push edi
push eax
call fcn.10177220
xor edx, edx
cmp dword [esi], edx
jbe 0x101777c8
mov ebx, dword [ebp + 8]
lea ebx, [ebx]
test edi, edi
je 0x10177618
mov ecx, dword [esi + 4]
lea eax, [esp + 0xe]
push eax
mov eax, dword [ecx + edx*4]
push edi
push eax
mov ecx, ebx
call fcn.10177220
inc edx
cmp edx, dword [esi]
jb 0x10177600
jmp 0x101777c8
cmp edx, 1
jb 0x10177630
cmp edx, 4
jbe 0x1017775f
cmp eax, 0x70c00000
ja 0x1017766e
je 0x1017775f
cmp eax, 0x70300000
ja 0x1017765c
je 0x1017775f
cmp eax, 0x70000000
je 0x1017775f
cmp eax, 0x70100000
jmp 0x10177692
cmp eax, 0x70400000
je 0x1017775f
cmp eax, 0x70b00000
jmp 0x10177692
cmp eax, 0x71000000
ja 0x1017768d
je 0x1017775f
cmp eax, 0x70d00000
je 0x1017775f
cmp eax, 0x70f00000
jmp 0x10177692
cmp eax, 0x71200000
je 0x1017775f
cmp eax, 0x90100000
je 0x1017775f
cmp eax, 0x50a00000
je 0x1017775f
cmp eax, 0x51d00000
je 0x1017775f
cmp eax, 0x51e00000
je 0x1017775f
xor edi, edi
cmp dword [esi + 8], edi
jbe 0x101776e4
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
cmp edi, edx
jae 0x101776dc
mov edi, edx
add ecx, 4
sub ebx, 1
jne 0x101776d1
mov ebx, dword [ebp + 8]
test byte [ebx + 0x7fd9], 8
je 0x1017770c
cmp dword [esp + 0x30], 6
je 0x10177731
cmp dword [esp + 0x30], 0xa
je 0x10177731
cmp eax, 0x51300000
je 0x10177731
cmp eax, 0x51f00000
je 0x10177731
xor edx, edx
cmp dword [esi + 8], edx
jbe 0x10177731
test edi, edi
je 0x1017772b
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0xe]
push eax
mov eax, dword [ecx + edx*4]
push edi
push eax
mov ecx, ebx
call fcn.10177220
inc edx
cmp edx, dword [esi + 8]
jb 0x10177713
xor edx, edx
cmp dword [esi], edx
jbe 0x101777c8
jmp 0x10177740
test edi, edi
je 0x10177758
mov eax, dword [esi + 4]
lea ecx, [esp + 0xe]
push ecx
mov ecx, dword [eax + edx*4]
push edi
push ecx
mov ecx, ebx
call fcn.10177220
inc edx
cmp edx, dword [esi]
jb 0x10177740
jmp 0x101777c8
mov eax, dword [esi]
and ecx, 0xfffff
xor edx, edx
div ecx
xor ebx, ebx
mov dword [esp + 0x30], eax
cmp dword [esi + 8], ebx
jbe 0x101777c8
mov edx, dword [esi + 0xc]
mov eax, dword [edx + ebx*4]
mov edi, dword [eax + 0x28]
test edi, edi
je 0x10177792
lea ecx, [esp + 0xe]
push ecx
mov ecx, dword [ebp + 8]
push edi
push eax
call fcn.10177220
xor edx, edx
cmp dword [esp + 0x30], edx
jbe 0x101777c2
test edi, edi
je 0x101777bb
mov ecx, dword [esi + 8]
imul ecx, edx
lea eax, [esp + 0xe]
push eax
mov eax, dword [esi + 4]
add ecx, ebx
mov ecx, dword [eax + ecx*4]
push edi
push ecx
mov ecx, dword [ebp + 8]
call fcn.10177220
inc edx
cmp edx, dword [esp + 0x30]
jb 0x1017779a
inc ebx
cmp ebx, dword [esi + 8]
jb 0x10177776
mov eax, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
test eax, eax
je 0x101777e4
mov ecx, dword [edx + 0x10]
cmp eax, ecx
jae 0x101777e4
mov edx, dword [edx + 0x14]
mov esi, dword [edx + eax*4 - 4]
dec eax
jmp 0x101777eb
mov ecx, dword [edx + 0x10]
xor esi, esi
mov eax, ecx
mov dword [esp + 0x3c], eax
cmp eax, ecx
jb 0x101773f6
cmp dword [esp + 0x10], 0
mov edi, dword [ebp + 8]
jne 0x1017788f
mov eax, dword [edi + 0x10]
lea ecx, [eax - 1]
cmp eax, ecx
jbe 0x10177817
mov eax, dword [edi + 0x14]
mov eax, dword [eax + ecx*4]
jmp 0x10177819
xor eax, eax
mov esi, ecx
mov ebx, 1
cmp ecx, dword [edi + 0x10]
jae 0x10177894
jmp 0x10177830
mov ecx, dword [eax + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x11400000
jne 0x1017786d
xor edx, edx
cmp dword [eax + 8], edx
jbe 0x1017786d
jmp 0x10177850
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4]
cmp dword [ecx + 0x28], ebx
jne 0x10177866
mov dword [ecx + 0x28], 0
mov byte [esp + 0xe], bl
add edx, ebx
cmp edx, dword [eax + 8]
jb 0x10177850
test esi, esi
je 0x10177882
mov ecx, dword [edi + 0x10]
cmp esi, ecx
jae 0x10177882
mov edx, dword [edi + 0x14]
sub esi, ebx
mov eax, dword [edx + esi*4]
jmp 0x10177889
mov ecx, dword [edi + 0x10]
xor eax, eax
mov esi, ecx
cmp esi, ecx
jb 0x10177830
jmp 0x10177894
mov ebx, 1
cmp byte [esp + 0xe], 0
je 0x101778b3
mov eax, dword [esp + 0x10]
add eax, ebx
mov dword [esp + 0x10], eax
cmp eax, 0x400
jb 0x101773b0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
test eax, eax
jbe 0x101778c1
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx]
jmp 0x101778c3
xor ecx, ecx
mov dword [esp + 0x3c], 0
test eax, eax
jbe 0x10177ea6
mov esi, dword [ebp + 8]
mov edi, dword [ecx + 0x3c]
mov edx, edi
shr edx, 0x1c
xor ebx, ebx
cmp edx, ebx
je 0x10177e7b
mov eax, edi
and eax, 0xfff00000
cmp eax, 0x50600000
ja 0x101779dd
je 0x101779ef
cmp eax, 0x50400000
je 0x101779ef
cmp eax, 0x50500000
je 0x101779ef
cmp eax, 0x90200000
jne 0x10177c39
mov esi, dword [ecx]
xor edx, edx
and edi, 0xfffff
mov eax, esi
div edi
mov edx, dword [ecx + 0xc]
mov edx, dword [edx]
mov ebx, esi
shr ebx, 1
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [edx + 0x28], 2
mov dword [esp + 0x30], eax
jne 0x10177d3d
mov dword [esp + 0x20], eax
test ebx, ebx
jbe 0x10177bd6
lea edx, [ebx*4]
mov dword [esp + 0x28], edx
jmp 0x10177970
mov esi, dword [ecx + 4]
mov edi, dword [edx + esi]
cmp dword [edi + 0x28], 2
jne 0x10177bb6
mov edx, dword [edi + 0x50]
mov edx, dword [edx + 8]
and edx, 2
xor esi, esi
or edx, esi
je 0x10177bb6
mov edx, dword [edi + 0x88]
mov edx, dword [edx + 0x3c]
and edx, 0xfff00000
cmp edx, 0x51900000
ja 0x10177b64
je 0x10177b74
cmp edx, 0x51300000
je 0x10177b74
cmp edx, 0x51400000
je 0x10177b74
cmp edx, 0x51500000
je 0x10177b74
jmp 0x10177bb6
cmp eax, 0x50800000
je 0x101779ef
cmp eax, 0x50900000
jne 0x10177916
mov eax, dword [ecx]
and edi, 0xfffff
xor edx, edx
div edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebx
mov edx, eax
xor eax, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
test edi, edi
jbe 0x10177a72
lea esi, [eax*4]
mov eax, dword [ecx + 4]
mov eax, dword [eax + esi]
cmp dword [eax + 0x28], 2
jne 0x10177a65
test edx, edx
jbe 0x10177a60
lea eax, [edi*4]
lea edi, [ebx*4]
mov dword [esp + 0x30], edx
lea esp, [esp]
mov edx, dword [ecx + 4]
mov ebx, dword [edx + esi]
mov dword [edx + edi], ebx
add esi, eax
add edi, eax
sub dword [esp + 0x30], 1
jne 0x10177a40
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jb 0x10177a13
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp dword [eax + 0x28], 2
je 0x10177a8c
xor eax, eax
mov dword [ecx + 0x3c], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
jmp 0x10177e7b
test ebx, ebx
jne 0x10177ad3
mov eax, dword [ecx + 0x3c]
and eax, 0xfff00001
or eax, 1
mov dword [ecx + 0x3c], eax
xor eax, eax
mov dword [ecx], edx
mov dword [ecx + 8], 1
test edx, edx
jbe 0x10177e76
lea ebx, [edx - 1]
imul ebx, edi
add ebx, ebx
add ebx, ebx
jmp 0x10177ac0
mov esi, dword [ecx + 4]
mov edi, dword [ebx + esi]
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jb 0x10177ac0
jmp 0x10177e76
cmp ebx, edi
je 0x10177e7b
mov eax, dword [ecx + 0x3c]
xor eax, ebx
and eax, 0xfffff
xor dword [ecx + 0x3c], eax
mov eax, ebx
imul eax, edx
mov dword [ecx], eax
mov dword [ecx + 8], 1
cmp edx, 1
jbe 0x10177e76
add edi, edi
add edi, edi
lea eax, [ebx*4]
mov esi, eax
dec edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], edx
test ebx, ebx
jbe 0x10177b43
mov edx, dword [esp + 0x18]
mov edi, ebx
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edx]
mov dword [eax + esi], ebx
add edx, 4
add esi, 4
sub edi, 1
jne 0x10177b27
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
add dword [esp + 0x18], edi
lea eax, [ebx*4]
add esi, eax
sub dword [esp + 0x28], 1
mov dword [esp + 0x30], esi
jne 0x10177b1d
jmp 0x10177e76
cmp edx, 0x51a00000
je 0x10177b74
cmp edx, 0x90100000
jne 0x10177bb6
mov esi, dword [esp + 0x20]
add esi, esi
lea edi, [eax*4]
add esi, esi
mov eax, 2
jmp 0x10177b90
mov edx, dword [ecx + 4]
mov ebx, dword [edx + esi]
mov dword [edx + edi], ebx
mov ebx, dword [esp + 0x18]
lea edx, [ebx*4]
add esi, edx
add edi, edx
sub eax, 1
jne 0x10177b90
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov edi, dword [ecx]
inc esi
add edx, 4
shr edi, 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], edx
cmp esi, edi
jb 0x10177970
cmp eax, ebx
je 0x10177e7b
test eax, eax
je 0x10177bf9
mov edx, dword [ecx + 0x3c]
xor edx, eax
mov esi, eax
imul esi, dword [esp + 0x14]
and edx, 0xfffff
xor edx, dword [ecx + 0x3c]
jmp 0x10177c03
mov esi, 1
mov edx, 0x10000001
mov dword [ecx + 0x3c], edx
mov dword [ecx], esi
test eax, eax
jbe 0x10177e76
lea esi, [eax*4]
lea edx, [ebx*4]
mov edi, eax
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edx]
mov dword [eax + esi], ebx
add edx, 4
add esi, 4
sub edi, 1
jne 0x10177c20
jmp 0x10177e76
cmp edx, 1
jb 0x10177c47
cmp edx, 4
jbe 0x10177d7d
cmp eax, 0x70c00000
ja 0x10177c85
je 0x10177d7d
cmp eax, 0x70300000
ja 0x10177c73
je 0x10177d7d
cmp eax, 0x70000000
je 0x10177d7d
cmp eax, 0x70100000
jmp 0x10177ca9
cmp eax, 0x70400000
je 0x10177d7d
cmp eax, 0x70b00000
jmp 0x10177ca9
cmp eax, 0x71000000
ja 0x10177ca4
je 0x10177d7d
cmp eax, 0x70d00000
je 0x10177d7d
cmp eax, 0x70f00000
jmp 0x10177ca9
cmp eax, 0x71200000
je 0x10177d7d
cmp eax, 0x90100000
je 0x10177d7d
cmp eax, 0x50a00000
je 0x10177d7d
cmp eax, 0x51d00000
je 0x10177d7d
cmp eax, 0x51e00000
je 0x10177d7d
test byte [esi + 0x7fd9], 8
je 0x10177d4c
cmp edx, 6
je 0x10177cfc
cmp edx, 0xa
je 0x10177cfc
cmp eax, 0x51300000
je 0x10177cfc
cmp eax, 0x51f00000
jne 0x10177d4c
xor edx, edx
xor bl, bl
cmp dword [ecx + 8], edx
jbe 0x10177d3d
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edx*4]
mov edi, 2
cmp dword [eax + 0x28], edi
jne 0x10177d19
mov bl, 1
jmp 0x10177d2f
mov esi, dword [eax + 0x44]
or dword [eax + 0x40], 0x100
mov dword [eax + 0x44], esi
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x28], edi
inc edx
cmp edx, dword [ecx + 8]
jb 0x10177d05
test bl, bl
jne 0x10177e7b
xor eax, eax
mov dword [ecx + 0x3c], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
jmp 0x10177e76
mov edi, dword [ecx + 8]
xor eax, eax
cmp edi, ebx
jbe 0x10177d68
mov edx, dword [ecx + 0xc]
mov esi, dword [edx]
cmp dword [esi + 0x28], 2
je 0x10177d68
inc eax
add edx, 4
cmp eax, edi
jb 0x10177d58
cmp eax, edi
jne 0x10177e7b
mov dword [ecx + 0x3c], ebx
mov dword [ecx], ebx
mov dword [ecx + 8], ebx
jmp 0x10177e76
mov eax, dword [ecx]
and edi, 0xfffff
xor edx, edx
div edi
xor ebx, ebx
mov edi, eax
xor eax, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], eax
cmp dword [ecx + 8], ebx
jbe 0x10177de0
lea esp, [esp]
mov edx, dword [ecx + 0xc]
mov esi, dword [edx + eax*4]
cmp dword [esi + 0x28], 2
jne 0x10177dd6
mov dword [edx + ebx*4], esi
xor esi, esi
test edi, edi
jbe 0x10177dd5
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 4]
imul edx, esi
add eax, edx
mov eax, dword [edi + eax*4]
add edx, ebx
mov dword [edi + edx*4], eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
inc esi
cmp esi, edi
jb 0x10177db5
inc ebx
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 8]
jb 0x10177da0
mov edx, dword [ecx + 8]
cmp ebx, edx
je 0x10177e7b
test ebx, ebx
je 0x10177dfe
mov eax, dword [ecx + 0x3c]
xor eax, ebx
and eax, 0xfffff
xor eax, dword [ecx + 0x3c]
jmp 0x10177e00
xor eax, eax
mov dword [ecx + 0x3c], eax
mov eax, ebx
imul eax, edi
mov dword [ecx], eax
mov dword [ecx + 8], ebx
cmp edi, 1
jbe 0x10177e76
lea eax, [edx*4]
lea edx, [ebx*4]
mov esi, edx
dec edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], edi
test ebx, ebx
jbe 0x10177e5a
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], ebx
nop
mov eax, dword [ecx + 4]
mov edi, dword [edx + eax]
mov dword [esi + eax], edi
add edx, 4
add esi, 4
sub dword [esp + 0x30], 1
jne 0x10177e40
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
add dword [esp + 0x20], eax
lea edx, [ebx*4]
add esi, edx
sub dword [esp + 0x18], 1
mov dword [esp + 0x28], esi
jne 0x10177e33
mov byte [esp + 0xf], 1
mov eax, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x10]
inc eax
mov dword [esp + 0x3c], eax
cmp eax, edx
jb 0x10177e98
mov eax, edx
xor ecx, ecx
mov dword [esp + 0x3c], eax
jmp 0x10177e9e
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + eax*4]
cmp eax, edx
jb 0x101778d6
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
xor esi, esi
cmp eax, esi
jbe 0x10177ebc
mov edx, dword [ebx + 0x7f2c]
mov ecx, dword [edx]
jmp 0x10177ebe
xor ecx, ecx
xor edx, edx
cmp eax, esi
jbe 0x10177ef8
mov eax, dword [ecx + 8]
and eax, 0x8000400
or eax, esi
je 0x10177edd
mov dword [ecx + 0x78], esi
mov dword [ecx + 0x74], 0xffffffff
mov dword [ecx + 0x20], esi
mov eax, dword [ebx + 8]
inc edx
cmp edx, eax
jb 0x10177eeb
xor ecx, ecx
mov edx, eax
jmp 0x10177ef4
mov ecx, dword [ebx + 0x7f2c]
mov ecx, dword [ecx + edx*4]
cmp edx, eax
jb 0x10177ec4
mov edi, dword [ebx + 8]
or esi, 0xffffffff
inc esi
cmp esi, edi
jae 0x1017816b
mov edx, dword [ebx + 0x7f2c]
mov ecx, dword [edx + esi*4]
cmp dword [ecx + 0x24], 0
je 0x10177efe
mov eax, dword [ecx + 8]
and eax, 0x8000400
xor edx, edx
or eax, edx
je 0x10177efe
mov dword [esp + 0x4c], esi
mov edi, dword [ecx + 0x24]
mov eax, dword [edi]
cmp dword [edi + 0x28], 0
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
je 0x1017812f
mov esi, dword [edi + 0x5c]
mov ebx, dword [edi + 0x50]
mov dword [esp + 0x14], ebx
cmp esi, 0xffffffff
jne 0x10177f58
mov eax, dword [edi + 0x60]
mov ecx, eax
jmp 0x101780ff
mov eax, dword [esi + 0x4c]
mov eax, dword [eax*4 + 0x101e0f10]
mov ecx, eax
shr ecx, 9
test cl, 1
je 0x10178036
lea edx, [esp + 0x18]
lea ecx, [esp + 0x38]
call fcn.10165a70
test eax, eax
jl 0x10178535
mov edx, dword [edi + 0x60]
fild dword [edi + 0x60]
test edx, edx
jge 0x10177f95
fadd qword [0x100a3058]
fld qword [esp + 0x38]
fadd st(1)
fst qword [esp + 0x38]
fxch st(1)
fadd qword [esp + 0x18]
fst qword [esp + 0x18]
fldz
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x10177fe5
fstp st(2)
fxch st(1)
fst qword [esp + 0x38]
fxch st(1)
mov eax, dword [ebx + 0x10]
dec eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x10177fd4
fadd qword [0x100a3058]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10177fe9
fstp st(1)
fst qword [esp + 0x18]
jmp 0x10177feb
fstp st(0)
jmp 0x10177fbe
fstp st(0)
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov ecx, dword [esp + 0x30]
fldcw word [esp + 0x10]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
fldcw word [esp + 0x10]
jmp 0x101780ff
mov ecx, eax
and cl, 0x30
cmp cl, 0x20
jne 0x101780f9
mov edx, dword [esi + 0xe0]
mov ebx, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe8]
mov esi, dword [esi + 0xec]
and eax, 0xf
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
cmp al, 3
jne 0x10178088
lea esi, [esp + 0x20]
lea ecx, [esp + 0x28]
call fcn.101a4b10
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 0x60]
xor edx, edx
mov edi, ecx
add edi, dword [esp + 0x28]
mov eax, edx
adc eax, ebx
cmp eax, ebx
jl 0x101780ad
jg 0x101780a7
cmp edi, dword [esp + 0x28]
jbe 0x101780ad
mov dword [esp + 0x28], edi
mov ebx, eax
mov edi, dword [esp + 0x20]
add ecx, edi
adc edx, esi
cmp edx, esi
jl 0x101780c3
jg 0x101780bf
cmp ecx, edi
jbe 0x101780c3
mov edi, ecx
mov esi, edx
xor ecx, ecx
cmp ebx, ecx
jg 0x101780d9
jl 0x101780d1
cmp dword [esp + 0x28], ecx
jae 0x101780d9
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
dec eax
cmp esi, ecx
jl 0x101780f1
jg 0x101780eb
cmp edi, eax
jbe 0x101780f1
mov edi, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
mov eax, edi
jmp 0x10178103
mov eax, dword [ebx + 0x10]
xor ecx, ecx
dec eax
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + 0x78]
jbe 0x1017810b
mov dword [edx + 0x78], eax
cmp ecx, dword [edx + 0x74]
jae 0x10178113
mov dword [edx + 0x74], ecx
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0x64]
mov esi, dword [esp + 0x4c]
mov ebx, dword [ebp + 8]
mov eax, 1
shl eax, cl
or dword [edx + 0x20], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1017813c
mov edi, eax
mov eax, dword [eax]
jmp 0x10177f2d
mov edi, dword [ebx + 8]
nop
inc esi
mov dword [esp + 0x4c], esi
cmp esi, edi
jae 0x1017816f
mov edx, dword [ebx + 0x7f2c]
mov ecx, dword [edx + esi*4]
cmp dword [ecx + 0x24], 0
je 0x10178140
mov eax, dword [ecx + 8]
and eax, 0x8000400
xor edx, edx
or eax, edx
je 0x10178140
jmp 0x10177f28
mov dword [esp + 0x4c], esi
mov eax, dword [ebx + 8]
test eax, eax
jbe 0x10178180
mov ecx, dword [ebx + 0x7f2c]
mov esi, dword [ecx]
jmp 0x10178182
xor esi, esi
xor edi, edi
mov dword [esp + 0x3c], edi
test eax, eax
jbe 0x101782e9
cmp dword [esi + 0x64], 0xffffffff
je 0x101781d6
mov edx, dword [esi + 0x24]
test edx, edx
je 0x101781d6
lea ecx, [ecx]
cmp edx, 0xffffffff
je 0x101781ad
mov eax, dword [edx + 0x7c]
cmp eax, 0xffffffff
jne 0x101781af
mov eax, edx
mov eax, dword [eax + 0x28]
mov byte [esp + 0x10], 0
test eax, eax
je 0x101781cc
lea ecx, [esp + 0x10]
push ecx
push eax
mov eax, dword [esi + 0x64]
push eax
mov ecx, ebx
call fcn.10177220
test edx, edx
je 0x101781d6
mov edx, dword [edx]
test edx, edx
jne 0x101781a0
mov ecx, dword [esi + 0xc]
and ecx, 0x200
xor eax, eax
or eax, ecx
je 0x101782c2
mov esi, dword [esi + 0x24]
test esi, esi
je 0x101782c2
jmp 0x10178200
mov ecx, dword [esi + 0xa0]
cmp ecx, 0xffffffff
je 0x101782b4
mov eax, dword [esi + 0x9c]
add eax, ecx
cmp eax, dword [ebx + 0x8238]
jae 0x1017822a
mov ecx, dword [ebx + 0x8230]
lea eax, [ecx + eax*4]
jmp 0x1017822c
xor eax, eax
test byte [eax], 1
je 0x101782b4
mov byte [esp + 0xe], 0
mov edx, esi
cmp esi, 0xffffffff
je 0x1017824b
mov eax, dword [esi + 0x7c]
cmp eax, 0xffffffff
je 0x1017824b
mov edx, eax
mov eax, 2
cmp dword [edx + 0x28], eax
jae 0x1017825d
mov dword [edx + 0x28], eax
mov byte [esp + 0xe], 1
mov ecx, dword [edx + 0x5c]
cmp ecx, 0xffffffff
je 0x1017827a
mov eax, dword [edx + 0x28]
test eax, eax
je 0x1017827a
lea edi, [esp + 0xe]
push edi
push eax
push ecx
mov ecx, ebx
call fcn.10177220
mov ecx, dword [edx + 0x68]
cmp ecx, 0xffffffff
je 0x10178297
mov eax, dword [edx + 0x28]
test eax, eax
je 0x10178297
lea edi, [esp + 0xe]
push edi
push eax
push ecx
mov ecx, ebx
call fcn.10177220
mov eax, dword [edx + 0x58]
cmp eax, 0xffffffff
je 0x101782b4
mov edx, dword [edx + 0x28]
test edx, edx
je 0x101782b4
lea ecx, [esp + 0xe]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.10177220
mov esi, dword [esi]
test esi, esi
jne 0x10178200
mov edi, dword [esp + 0x3c]
mov eax, dword [ebx + 8]
inc edi
mov dword [esp + 0x3c], edi
cmp edi, eax
jb 0x101782d8
mov edi, eax
xor esi, esi
mov dword [esp + 0x3c], edi
jmp 0x101782e1
mov edx, dword [ebx + 0x7f2c]
mov esi, dword [edx + edi*4]
cmp edi, eax
jb 0x10178190
mov eax, dword [ebx + 0xc]
test eax, eax
jbe 0x101782fa
mov ecx, dword [ebx + 0x7f34]
mov esi, dword [ecx]
jmp 0x101782fc
xor esi, esi
mov dword [esp + 0x3c], 0
test eax, eax
jbe 0x1017852c
cmp esi, 0xffffffff
je 0x10178319
mov eax, dword [esi + 0x7c]
cmp eax, 0xffffffff
jne 0x1017831b
mov eax, esi
cmp dword [eax + 0x28], 2
mov edx, dword [esi + 0x50]
je 0x101784fe
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x8020]
mov dword [esp + 0x30], eax
cmp eax, edx
je 0x101784fe
mov ebx, dword [esi + 0x5c]
or edi, 0xffffffff
cmp ebx, edi
jne 0x10178479
cmp dword [esi + 0x58], edi
jne 0x10178380
mov eax, dword [edx + 8]
and eax, 0x8000400
xor ecx, ecx
or eax, ecx
je 0x10178380
mov eax, dword [esi + 0x60]
cmp eax, dword [edx + 0x74]
jb 0x10178380
cmp eax, dword [edx + 0x78]
ja 0x10178380
mov ecx, dword [esi + 0x64]
mov eax, 1
shl eax, cl
test dword [edx + 0x20], eax
jne 0x101784fe
or edi, edi
cmp ebx, edi
jne 0x10178479
cmp dword [esi + 0x58], edi
jne 0x101783b4
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [esp + 0x2c], eax
mov eax, ecx
and eax, 0x400000
xor edi, edi
or eax, edi
je 0x101783b1
and ecx, 0x10
xor eax, eax
or ecx, eax
jne 0x101784fe
or edi, 0xffffffff
cmp ebx, edi
jne 0x10178479
cmp dword [esi + 0x58], edi
jne 0x101783f2
mov ecx, dword [ebp + 8]
test byte [ecx + 0x7fd4], 1
je 0x101783f2
cmp dword [esi + 0x7c], edi
jne 0x101783f2
mov eax, dword [edx + 8]
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x101783f2
mov edx, dword [esi + 0x44]
or dword [esi + 0x40], 0x100
mov dword [esi + 0x44], edx
jmp 0x101784fe
cmp ebx, edi
jne 0x10178479
cmp dword [esi + 0x58], edi
jne 0x10178479
mov eax, dword [ebp + 8]
test byte [eax + 0x7fd4], 0x20
je 0x10178479
cmp dword [esi + 0x7c], edi
jne 0x10178479
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0xc]
mov eax, ecx
and eax, 0x800080
xor edi, edi
or eax, edi
jne 0x1017843d
mov eax, ecx
and eax, 0x800
or eax, edi
jne 0x1017843d
mov eax, ecx
and eax, 0x10000000
or eax, edi
jne 0x10178479
mov edi, ebx
and edi, 0x20
xor eax, eax
or eax, edi
je 0x1017845e
mov eax, ecx
and eax, 0x400
xor edi, edi
or eax, edi
je 0x10178479
and ebx, 4
xor eax, eax
or eax, ebx
je 0x10178479
and ecx, 0x30
xor eax, eax
or ecx, eax
je 0x10178479
mov ecx, dword [esi + 0x44]
or dword [esi + 0x40], 0x100
mov dword [esi + 0x44], ecx
jmp 0x101784fe
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [esp + 0x2c], eax
mov eax, ecx
and eax, 0x100
xor edi, edi
or eax, edi
je 0x101784a2
and ecx, 0x800
xor eax, eax
or ecx, eax
je 0x101784a2
cmp dword [esi + 0x7c], 0xffffffff
je 0x101784fe
test edx, edx
je 0x101784d1
cmp edx, 0xffffffff
je 0x101784d1
mov eax, dword [esi + 4]
test eax, eax
je 0x101784b8
mov ecx, dword [esi]
mov dword [eax], ecx
jmp 0x101784bd
mov eax, dword [esi]
mov dword [edx + 0x24], eax
mov eax, dword [esi]
test eax, eax
je 0x101784cb
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp 0x101784d1
mov eax, dword [esi + 4]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x101784fb
cmp eax, 0xffffffff
je 0x101784fb
mov ecx, dword [eax + 0x28]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x101784ef
mov dword [ecx], esi
jmp 0x101784f2
mov dword [eax + 0x24], esi
mov dword [esi], 0
mov dword [eax + 0x28], esi
mov dword [esi + 0x50], eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jb 0x1017851b
mov ecx, eax
xor esi, esi
mov dword [esp + 0x3c], ecx
jmp 0x10178524
mov edx, dword [edx + 0x7f34]
mov esi, dword [edx + ecx*4]
cmp ecx, eax
jb 0x1017830c
xor eax, eax
cmp byte [esp + 0xf], al
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4