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

Disassembly:
push 0xffffffffffffffff
push 0x10350152
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x105be7d0]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x105be7d0]
xor eax, esp
push eax
lea eax, [esp + 0x84]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x3c], esi
mov ebx, dword [esp + 0x94]
mov edx, ebx
mov ecx, dword [esi + 4]
call fcn.1015fb90
mov eax, dword [esi]
mov edi, dword [eax]
cmp edi, eax
je 0x10161f23
mov byte [esp + 0x31], 2
mov byte [esp + 0x32], 1
mov byte [esp + 0x28], 1
jmp 0x10161130
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x31]
lea ebp, [edi + 0x10]
mov dword [esp + 0x18], ebp
cmp ecx, eax
jae 0x10161179
mov ecx, dword [ebx]
lea edx, [esp + 0x31]
cmp ecx, edx
ja 0x10161179
mov esi, edx
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x1016115e
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0
test ecx, ecx
je 0x1016119c
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1016119c
cmp eax, dword [ebx + 8]
jne 0x10161187
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 1
test eax, eax
je 0x1016119c
mov byte [eax], 2
mov dword [esp + 0x8c], 0xffffffff
lea ecx, [esp + 0x32]
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x1c], edx
cmp ecx, eax
jae 0x101611f5
mov ecx, dword [ebx]
lea esi, [esp + 0x32]
cmp ecx, esi
ja 0x101611f5
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x101611da
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 2
test ecx, ecx
je 0x1016121c
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1016121c
cmp eax, dword [ebx + 8]
jne 0x10161207
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 3
test eax, eax
je 0x1016121c
mov byte [eax], 1
mov dword [esp + 0x8c], 0xffffffff
mov ecx, edx
inc dword [ebx + 4]
lea edx, [esp + 0x33]
mov eax, dword [ebx + 4]
sar ecx, 0x18
mov dword [esp + 0x34], ecx
mov byte [esp + 0x33], cl
cmp edx, eax
jae 0x10161277
mov edx, dword [ebx]
lea esi, [esp + 0x33]
cmp edx, esi
ja 0x10161277
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x1016125c
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 4
test ecx, ecx
je 0x1016129d
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1016129d
cmp eax, dword [ebx + 8]
jne 0x10161289
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 5
test eax, eax
je 0x1016129d
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
lea edx, [esp + 0x2f]
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
sar ecx, 0x10
mov dword [esp + 0x34], ecx
mov byte [esp + 0x2f], cl
cmp edx, eax
jae 0x101612fc
mov edx, dword [ebx]
lea esi, [esp + 0x2f]
cmp edx, esi
ja 0x101612fc
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x101612e1
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 6
test ecx, ecx
je 0x10161322
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10161322
cmp eax, dword [ebx + 8]
jne 0x1016130e
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 7
test eax, eax
je 0x10161322
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
mov ecx, ebp
inc dword [ebx + 4]
lea edx, [esp + 0x26]
mov eax, dword [ebx + 4]
sar ecx, 8
mov dword [esp + 0x34], ecx
mov byte [esp + 0x26], cl
cmp edx, eax
jae 0x1016137d
mov edx, dword [ebx]
lea esi, [esp + 0x26]
cmp edx, esi
ja 0x1016137d
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10161362
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 8
test ecx, ecx
je 0x101613a3
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x101613a3
cmp eax, dword [ebx + 8]
jne 0x1016138f
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 9
test eax, eax
je 0x101613a3
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
lea ecx, [esp + 0x2b]
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x2b], dl
cmp ecx, eax
jae 0x101613f9
mov ecx, dword [ebx]
lea esi, [esp + 0x2b]
cmp ecx, esi
ja 0x101613f9
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x101613de
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xa
test ecx, ecx
je 0x1016141f
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1016141f
cmp eax, dword [ebx + 8]
jne 0x1016140b
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xb
test eax, eax
je 0x1016141f
mov byte [eax], dl
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x18]
inc dword [ebx + 4]
cmp dword [eax + 0x14], 8
mov edx, dword [eax + 0x10]
jb 0x1016143c
mov eax, dword [eax]
push ebx
add edx, edx
mov ecx, eax
call fcn.1015fc80
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x2c]
mov edx, dword [edi + 0x2c]
add esp, 4
mov dword [esp + 0x1c], edx
cmp ecx, eax
jae 0x10161494
mov ecx, dword [ebx]
lea esi, [esp + 0x28]
cmp ecx, esi
ja 0x10161494
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x10161479
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xc
test ecx, ecx
je 0x101614bb
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x101614bb
cmp eax, dword [ebx + 8]
jne 0x101614a6
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xd
test eax, eax
je 0x101614bb
mov byte [eax], 1
mov dword [esp + 0x8c], 0xffffffff
mov ecx, edx
inc dword [ebx + 4]
lea edx, [esp + 0x2c]
mov eax, dword [ebx + 4]
sar ecx, 0x18
mov dword [esp + 0x18], ecx
mov byte [esp + 0x2c], cl
cmp edx, eax
jae 0x10161516
mov edx, dword [ebx]
lea esi, [esp + 0x2c]
cmp edx, esi
ja 0x10161516
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x101614fb
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xe
test ecx, ecx
je 0x1016153c
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1016153c
cmp eax, dword [ebx + 8]
jne 0x10161528
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xf
test eax, eax
je 0x1016153c
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
lea edx, [esp + 0x2a]
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
sar ecx, 0x10
mov dword [esp + 0x18], ecx
mov byte [esp + 0x2a], cl
cmp edx, eax
jae 0x1016159b
mov edx, dword [ebx]
lea esi, [esp + 0x2a]
cmp edx, esi
ja 0x1016159b
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10161580
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x10
test ecx, ecx
je 0x101615c1
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x101615c1
cmp eax, dword [ebx + 8]
jne 0x101615ad
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x11
test eax, eax
je 0x101615c1
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
mov ecx, ebp
inc dword [ebx + 4]
lea edx, [esp + 0x2e]
mov eax, dword [ebx + 4]
sar ecx, 8
mov dword [esp + 0x18], ecx
mov byte [esp + 0x2e], cl
cmp edx, eax
jae 0x1016161c
mov edx, dword [ebx]
lea esi, [esp + 0x2e]
cmp edx, esi
ja 0x1016161c
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10161601
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x12
test ecx, ecx
je 0x10161642
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10161642
cmp eax, dword [ebx + 8]
jne 0x1016162e
push 1
mov ecx, ebx
call fcn.100e3960
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x13
test eax, eax
je 0x10161642
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
lea ecx, [esp + 0x30]
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x30], dl
cmp ecx, eax
jae 0x10161698
mov ecx, dword [ebx]
lea esi, [esp + 0x30]
cmp ecx, esi
ja 0x10161698
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x1016167d
push 1
mov ecx, ebx
call fcn.100e3960
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x14
test ecx, ecx
je 0x101616be
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x101616be
cmp eax, dword [ebx + 8]
jne 0x101616aa
push 1
mov ecx, ebx
call fcn.100e3960
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x15
test eax, eax
je 0x101616be
mov byte [eax], dl
mov dword [esp + 0x8c], 0xffffffff
inc dword [ebx + 4]
mov eax, dword [edi + 0x28]
mov esi, dword [eax]
cmp esi, eax
je 0x10161ed3
mov byte [esp + 0x2d], 2
mov edi, edi
mov ecx, dword [ebx + 4]
lea eax, [esi + 0x10]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2d]
cmp eax, ecx
jae 0x1016175f
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1016175f
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161741
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161741
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161732
xor edx, edx
jmp 0x10161734
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x16
test ecx, ecx
je 0x101617b9
mov al, byte [eax]
mov byte [ecx], al
jmp 0x101617b9
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x101617a4
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x101617a4
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161795
xor edx, edx
jmp 0x10161797
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x17
test eax, eax
je 0x101617b9
mov byte [eax], 2
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x34]
inc dword [ebx + 4]
mov ecx, dword [ebx + 4]
mov byte [esp + 0x23], 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x23]
cmp eax, ecx
jae 0x1016184f
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1016184f
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161831
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161831
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161822
xor edx, edx
jmp 0x10161824
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x18
test ecx, ecx
je 0x101618a9
mov al, byte [eax]
mov byte [ecx], al
jmp 0x101618a9
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x10161894
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161894
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161885
xor edx, edx
jmp 0x10161887
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x19
test eax, eax
je 0x101618a9
mov byte [eax], 1
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x1c]
inc dword [ebx + 4]
mov ecx, dword [ebx + 4]
sar eax, 0x18
mov dword [esp + 0x18], eax
mov byte [esp + 0x24], al
lea eax, [esp + 0x24]
cmp eax, ecx
jae 0x1016193e
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1016193e
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161920
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161920
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161911
xor edx, edx
jmp 0x10161913
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1a
test ecx, ecx
je 0x1016199b
mov al, byte [eax]
mov byte [ecx], al
jmp 0x1016199b
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x10161983
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161983
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161974
xor edx, edx
jmp 0x10161976
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1b
test eax, eax
je 0x1016199b
mov ecx, dword [esp + 0x18]
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x1c]
inc dword [ebx + 4]
mov ecx, dword [ebx + 4]
sar eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x25], al
lea eax, [esp + 0x25]
cmp eax, ecx
jae 0x10161a30
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x10161a30
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161a12
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161a12
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161a03
xor edx, edx
jmp 0x10161a05
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1c
test ecx, ecx
je 0x10161a8d
mov al, byte [eax]
mov byte [ecx], al
jmp 0x10161a8d
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x10161a75
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161a75
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161a66
xor edx, edx
jmp 0x10161a68
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1d
test eax, eax
je 0x10161a8d
mov ecx, dword [esp + 0x18]
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x1c]
inc dword [ebx + 4]
mov ecx, dword [ebx + 4]
sar eax, 8
mov dword [esp + 0x18], eax
mov byte [esp + 0x27], al
lea eax, [esp + 0x27]
cmp eax, ecx
jae 0x10161b22
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x10161b22
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161b04
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161b04
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161af5
xor edx, edx
jmp 0x10161af7
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1e
test ecx, ecx
je 0x10161b7f
mov al, byte [eax]
mov byte [ecx], al
jmp 0x10161b7f
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x10161b67
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161b67
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161b58
xor edx, edx
jmp 0x10161b5a
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1f
test eax, eax
je 0x10161b7f
mov ecx, dword [esp + 0x18]
mov byte [eax], cl
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x1c]
inc dword [ebx + 4]
mov ecx, dword [ebx + 4]
mov byte [esp + 0x29], al
lea eax, [esp + 0x29]
cmp eax, ecx
jae 0x10161c0d
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x10161c0d
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10161bef
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161bef
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161be0
xor edx, edx
jmp 0x10161be2
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x20
test ecx, ecx
je 0x10161c6a
mov al, byte [eax]
mov byte [ecx], al
jmp 0x10161c6a
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x10161c52
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10161c52
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10161f49
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10161c43
xor edx, edx
jmp 0x10161c45
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.100e3a10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x21
test eax, eax
je 0x10161c6a
mov edx, dword [esp + 0x1c]
mov byte [eax], dl
mov dword [esp + 0x8c], 0xffffffff
mov eax, dword [esp + 0x34]
inc dword [ebx + 4]
cmp dword [eax + 0x14], 8
mov edx, dword [eax + 0x10]
jb 0x10161c87
mov eax, dword [eax]
push ebx
add edx, edx
mov ecx, eax
call fcn.1015fc80
mov ebp, dword [esi + 0x28]
lea eax, [esi + 0x28]
add esp, 4
mov edx, ebx
mov ecx, ebp
call fcn.1015fb90
cmp ebp, 3
ja case.default.0x10161cac
jmp dword [ebp*4 + 0x10161f58]
cmp dword [esi + 0x28], 1
jne 0x10161cd5
mov eax, dword [esi + 0x30]
sub eax, dword [esi + 0x2c]
cmp eax, 4
jne 0x10161cd5
mov eax, dword [esi + 0x2c]
mov edx, ebx
mov ecx, dword [eax]
call fcn.1015fb90
jmp case.0x10161cac.0
xor ecx, ecx
mov edx, ebx
call fcn.1015fb90
jmp case.0x10161cac.0
xor eax, eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
mov dword [esp + 0x8c], 0x22
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea ecx, [esi + 0x28]
call fcn.1015fa50
mov ebp, eax
mov byte [esp + 0x8c], 0x23
lea eax, [esp + 0x3b]
push eax
mov ecx, ebx
mov byte [esp + 0x3f], 2
call fcn.10163f30
mov ecx, dword [ebp + 0x10]
mov edx, ebx
call fcn.1015fb90
cmp dword [ebp + 0x14], 8
mov edx, dword [ebp + 0x10]
jb 0x10161d58
mov ebp, dword [ebp]
push ebx
add edx, edx
mov ecx, ebp
call fcn.1015fc80
add esp, 4
mov byte [esp + 0x8c], 0x22
cmp dword [esp + 0x6c], 8
mov ebp, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
jb 0x10161d83
push dword [esp + 0x58]
call ebp
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], 0
mov word [esp + 0x58], ax
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x54], 8
jb 0x10161db5
push dword [esp + 0x40]
call ebp
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
jmp case.0x10161cac.0
xorps xmm0, xmm0
mov dword [esp + 0x78], 0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x8c], 0x24
lea ecx, [esp + 0x70]
cmp dword [esi + 0x28], 3
je 0x10161e23
call dword [sym.imp.MSVCP120.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov eax, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x74], eax
xor ecx, ecx
jmp 0x10161e40
lea eax, [esi + 0x2c]
push eax
call fcn.10163fd0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
cmp ecx, edx
jne 0x10161e3e
xor edx, edx
xor ecx, ecx
jmp 0x10161e40
sub edx, ecx
push ebx
call fcn.1015fc80
add esp, 4
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x70], 0
je case.0x10161cac.0
lea ecx, [esp + 0x70]
call dword [sym.imp.MSVCP120.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
push dword [esp + 0x70]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
cmp byte [esi + 0xd], 0
jne 0x10161eca
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x10161eaf
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10161eca
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10161ea3
jmp 0x10161eca
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10161ec8
cmp esi, dword [eax + 8]
jne 0x10161ec8
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10161eb8
mov esi, eax
cmp esi, dword [edi + 0x28]
jne 0x101616e0
cmp byte [edi + 0xd], 0
jne 0x10161f17
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x10161efc
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x10161f17
lea esp, [esp]
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x10161ef0
jmp 0x10161f17
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x10161f15
cmp edi, dword [eax + 8]
jne 0x10161f15
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10161f05
mov edi, eax
mov eax, dword [esp + 0x3c]
cmp edi, dword [eax]
jne 0x10161130
mov al, 1
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.1033d458
add esp, 0x7c
ret 4
push str.vector_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
xor al, al
jmp 0x10161f25