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

Disassembly:
push 0xffffffffffffffff
push 0x1010c202
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [section..data]
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.100375f0
mov eax, dword [esi]
mov edi, dword [eax]
cmp edi, eax
je 0x10039a73
mov byte [esp + 0x31], 2
mov byte [esp + 0x32], 1
mov byte [esp + 0x28], 1
jmp 0x10038c80
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x31]
lea ebp, [edi + 0x10]
mov dword [esp + 0x18], ebp
cmp ecx, eax
jae 0x10038cc9
mov ecx, dword [ebx]
lea edx, [esp + 0x31]
cmp ecx, edx
ja 0x10038cc9
mov esi, edx
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x10038cae
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0
test ecx, ecx
je 0x10038cec
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038cec
cmp eax, dword [ebx + 8]
jne 0x10038cd7
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 1
test eax, eax
je 0x10038cec
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 0x10038d45
mov ecx, dword [ebx]
lea esi, [esp + 0x32]
cmp ecx, esi
ja 0x10038d45
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x10038d2a
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 2
test ecx, ecx
je 0x10038d6c
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038d6c
cmp eax, dword [ebx + 8]
jne 0x10038d57
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 3
test eax, eax
je 0x10038d6c
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 0x10038dc7
mov edx, dword [ebx]
lea esi, [esp + 0x33]
cmp edx, esi
ja 0x10038dc7
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10038dac
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 4
test ecx, ecx
je 0x10038ded
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038ded
cmp eax, dword [ebx + 8]
jne 0x10038dd9
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 5
test eax, eax
je 0x10038ded
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 0x10038e4c
mov edx, dword [ebx]
lea esi, [esp + 0x2f]
cmp edx, esi
ja 0x10038e4c
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10038e31
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 6
test ecx, ecx
je 0x10038e72
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038e72
cmp eax, dword [ebx + 8]
jne 0x10038e5e
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 7
test eax, eax
je 0x10038e72
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 0x10038ecd
mov edx, dword [ebx]
lea esi, [esp + 0x26]
cmp edx, esi
ja 0x10038ecd
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10038eb2
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 8
test ecx, ecx
je 0x10038ef3
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038ef3
cmp eax, dword [ebx + 8]
jne 0x10038edf
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 9
test eax, eax
je 0x10038ef3
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 0x10038f49
mov ecx, dword [ebx]
lea esi, [esp + 0x2b]
cmp ecx, esi
ja 0x10038f49
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x10038f2e
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xa
test ecx, ecx
je 0x10038f6f
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10038f6f
cmp eax, dword [ebx + 8]
jne 0x10038f5b
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xb
test eax, eax
je 0x10038f6f
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 0x10038f8c
mov eax, dword [eax]
push ebx
add edx, edx
mov ecx, eax
call fcn.100376e0
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 0x10038fe4
mov ecx, dword [ebx]
lea esi, [esp + 0x28]
cmp ecx, esi
ja 0x10038fe4
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x10038fc9
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xc
test ecx, ecx
je 0x1003900b
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1003900b
cmp eax, dword [ebx + 8]
jne 0x10038ff6
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xd
test eax, eax
je 0x1003900b
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 0x10039066
mov edx, dword [ebx]
lea esi, [esp + 0x2c]
cmp edx, esi
ja 0x10039066
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x1003904b
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0xe
test ecx, ecx
je 0x1003908c
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1003908c
cmp eax, dword [ebx + 8]
jne 0x10039078
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0xf
test eax, eax
je 0x1003908c
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 0x100390eb
mov edx, dword [ebx]
lea esi, [esp + 0x2a]
cmp edx, esi
ja 0x100390eb
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x100390d0
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x10
test ecx, ecx
je 0x10039111
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10039111
cmp eax, dword [ebx + 8]
jne 0x100390fd
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x11
test eax, eax
je 0x10039111
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 0x1003916c
mov edx, dword [ebx]
lea esi, [esp + 0x2e]
cmp edx, esi
ja 0x1003916c
sub esi, edx
cmp eax, dword [ebx + 8]
jne 0x10039151
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x12
test ecx, ecx
je 0x10039192
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x10039192
cmp eax, dword [ebx + 8]
jne 0x1003917e
push 1
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x13
test eax, eax
je 0x10039192
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 0x100391e8
mov ecx, dword [ebx]
lea esi, [esp + 0x30]
cmp ecx, esi
ja 0x100391e8
sub esi, ecx
cmp eax, dword [ebx + 8]
jne 0x100391cd
push 1
mov ecx, ebx
call fcn.1003dce0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x14
test ecx, ecx
je 0x1003920e
mov al, byte [eax + esi]
mov byte [ecx], al
jmp 0x1003920e
cmp eax, dword [ebx + 8]
jne 0x100391fa
push 1
mov ecx, ebx
call fcn.1003dce0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x15
test eax, eax
je 0x1003920e
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 0x10039a23
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 0x100392af
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x100392af
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10039291
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10039291
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039282
xor edx, edx
jmp 0x10039284
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x16
test ecx, ecx
je 0x10039309
mov al, byte [eax]
mov byte [ecx], al
jmp 0x10039309
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100392f4
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100392f4
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x100392e5
xor edx, edx
jmp 0x100392e7
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x17
test eax, eax
je 0x10039309
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 0x1003939f
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1003939f
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10039381
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10039381
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039372
xor edx, edx
jmp 0x10039374
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x18
test ecx, ecx
je 0x100393f9
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100393f9
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100393e4
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100393e4
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x100393d5
xor edx, edx
jmp 0x100393d7
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x19
test eax, eax
je 0x100393f9
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 0x1003948e
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1003948e
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10039470
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10039470
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039461
xor edx, edx
jmp 0x10039463
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1a
test ecx, ecx
je 0x100394eb
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100394eb
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100394d3
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100394d3
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x100394c4
xor edx, edx
jmp 0x100394c6
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1b
test eax, eax
je 0x100394eb
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 0x10039580
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x10039580
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10039562
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10039562
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039553
xor edx, edx
jmp 0x10039555
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1c
test ecx, ecx
je 0x100395dd
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100395dd
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100395c5
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100395c5
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x100395b6
xor edx, edx
jmp 0x100395b8
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1d
test eax, eax
je 0x100395dd
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 0x10039672
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x10039672
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x10039654
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x10039654
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039645
xor edx, edx
jmp 0x10039647
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1e
test ecx, ecx
je 0x100396cf
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100396cf
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100396b7
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100396b7
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x100396a8
xor edx, edx
jmp 0x100396aa
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x1f
test eax, eax
je 0x100396cf
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 0x1003975d
mov ebp, dword [ebx]
cmp ebp, eax
ja 0x1003975d
mov edx, dword [ebx + 8]
sub eax, ebp
mov dword [esp + 0x18], eax
cmp ecx, edx
jne 0x1003973f
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x1003973f
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039730
xor edx, edx
jmp 0x10039732
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx]
add eax, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x8c], 0x20
test ecx, ecx
je 0x100397ba
mov al, byte [eax]
mov byte [ecx], al
jmp 0x100397ba
mov edx, dword [ebx + 8]
cmp ecx, edx
jne 0x100397a2
mov eax, edx
sub eax, ecx
cmp eax, 1
jae 0x100397a2
mov ebp, dword [ebx]
mov eax, ebp
sub eax, ecx
dec eax
cmp eax, 1
jb 0x10039a99
sub ecx, ebp
sub edx, ebp
mov ebp, edx
or eax, 0xffffffff
shr ebp, 1
inc ecx
sub eax, ebp
cmp eax, edx
jae 0x10039793
xor edx, edx
jmp 0x10039795
add edx, ebp
cmp edx, ecx
cmovb edx, ecx
mov ecx, ebx
push edx
call fcn.1003dc10
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], 0x21
test eax, eax
je 0x100397ba
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 0x100397d7
mov eax, dword [eax]
push ebx
add edx, edx
mov ecx, eax
call fcn.100376e0
mov ebp, dword [esi + 0x28]
lea eax, [esi + 0x28]
add esp, 4
mov edx, ebx
mov ecx, ebp
call fcn.100375f0
cmp ebp, 3
ja case.default.0x100397fc
jmp dword [ebp*4 + 0x10039aa8]
cmp dword [esi + 0x28], 1
jne 0x10039825
mov eax, dword [esi + 0x30]
sub eax, dword [esi + 0x2c]
cmp eax, 4
jne 0x10039825
mov eax, dword [esi + 0x2c]
mov edx, ebx
mov ecx, dword [eax]
call fcn.100375f0
jmp case.0x100397fc.0
xor ecx, ecx
mov edx, ebx
call fcn.100375f0
jmp case.0x100397fc.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.10037460
mov ebp, eax
mov byte [esp + 0x8c], 0x23
lea eax, [esp + 0x3b]
push eax
mov ecx, ebx
mov byte [esp + 0x3f], 2
call fcn.1003ca30
mov ecx, dword [ebp + 0x10]
mov edx, ebx
call fcn.100375f0
cmp dword [ebp + 0x14], 8
mov edx, dword [ebp + 0x10]
jb 0x100398a8
mov ebp, dword [ebp]
push ebx
add edx, edx
mov ecx, ebp
call fcn.100376e0
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 0x100398d3
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 0x10039905
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.0x100397fc.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 0x10039973
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 0x10039990
lea eax, [esi + 0x2c]
push eax
call fcn.1003cb00
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
cmp ecx, edx
jne 0x1003998e
xor edx, edx
xor ecx, ecx
jmp 0x10039990
sub edx, ecx
push ebx
call fcn.100376e0
add esp, 4
mov dword [esp + 0x8c], 0xffffffff
cmp dword [esp + 0x70], 0
je case.0x100397fc.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 0x10039a1a
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x100399ff
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10039a1a
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x100399f3
jmp 0x10039a1a
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10039a18
cmp esi, dword [eax + 8]
jne 0x10039a18
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10039a08
mov esi, eax
cmp esi, dword [edi + 0x28]
jne 0x10039230
cmp byte [edi + 0xd], 0
jne 0x10039a67
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x10039a4c
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x10039a67
lea esp, [esp]
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x10039a40
jmp 0x10039a67
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x10039a65
cmp edi, dword [eax + 8]
jne 0x10039a65
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10039a55
mov edi, eax
mov eax, dword [esp + 0x3c]
cmp edi, dword [eax]
jne 0x10038c80
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.10103694
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 0x10039a75