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

Disassembly:
sub esp, 0xc
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x100cc0a7
mov ecx, dword [esi]
mov edx, dword [esi + 0xc]
push ebx
push ebp
push edi
movzx eax, byte [ecx + edx]
mov dword [esi + 0x30], eax
cmp eax, 0xff
je case.0x100cbca6.6
cmp eax, 0x7f
ja case.0x100cbca6.0
movzx eax, byte [eax + 0x100cc250]
jmp dword [eax*4 + 0x100cc200]
cmp byte [ecx + edx], 1
jne 0x100cbccb
mov eax, dword [esi + 0x14]
pop edi
pop ebp
pop ebx
movsd xmm0, qword [ecx + eax]
lea eax, [esi + 0x30]
movsd qword [esi + 0x38], xmm0
pop esi
add esp, 0xc
ret
pop edi
pop ebp
xorps xmm0, xmm0
lea eax, [esi + 0x30]
pop ebx
movsd qword [esi + 0x38], xmm0
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 2
lea ebx, [esi + 0x3c]
jne 0x100cbd10
test ebx, ebx
je 0x100cbcfd
mov eax, dword [esi + 0x14]
mov eax, dword [ecx + eax]
xor ecx, ecx
test eax, eax
lea edx, [eax - 1]
cmovg ecx, edx
mov dword [ebx], ecx
mov eax, dword [esi + 0x18]
add eax, dword [esi]
mov dword [esi + 0x38], eax
pop edi
pop ebp
pop ebx
lea eax, [esi + 0x30]
pop esi
add esp, 0xc
ret
test ebx, ebx
je 0x100cbd1a
mov dword [ebx], 0
pop edi
xor eax, eax
pop ebp
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
lea edx, [esi + 0x3c]
lea ecx, [esi + 0x38]
test edx, edx
je 0x100cc0d8
test ecx, ecx
je 0x100cc109
mov dword [ecx], 0
mov dword [edx], 0
mov ebx, dword [esi]
mov eax, dword [esi + 0xc]
cmp byte [ebx + eax], 3
jne case.0x100cbca6.6
mov eax, dword [esi + 0x14]
pop edi
pop ebp
mov eax, dword [ebx + eax]
mov dword [edx], eax
mov eax, dword [esi + 0x14]
add eax, dword [esi]
mov dword [ecx], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
lea edx, [esi + 0x3c]
lea ecx, [esi + 0x38]
test edx, edx
je 0x100cc13a
test ecx, ecx
je 0x100cc16b
mov dword [ecx], 0
mov dword [edx], 0
mov ebx, dword [esi]
mov eax, dword [esi + 0xc]
cmp byte [ebx + eax], 4
jmp 0x100cbd55
lea ebx, [esi + 0x38]
lea ebp, [esi + 0x3c]
lea eax, [esi + 0x40]
test ebx, ebx
je 0x100cbdb3
test ebp, ebp
je 0x100cc19c
cmp byte [ecx + edx], 5
jne 0x100cbe04
test eax, eax
lea edx, [esp + 0x10]
cmovne edx, eax
mov eax, dword [esi + 0x18]
movzx eax, byte [eax + ecx]
mov dword [edx], eax
test ebx, ebx
je case.0x100cbca6.6
mov ecx, dword [esi + 0x14]
mov eax, dword [esi]
mov eax, dword [ecx + eax]
mov dword [ebp], eax
mov ecx, dword [esi + 0x1c]
add ecx, dword [esi]
mov dword [ebx], ecx
cmp dword [edx], 2
jne case.0x100cbca6.6
add eax, 0xfffffffc
mov dword [ebp], eax
lea eax, [ecx + 4]
pop edi
pop ebp
mov dword [ebx], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
test ebx, ebx
je 0x100cbe0e
mov dword [ebx], 0
test ebp, ebp
je 0x100cbe19
mov dword [ebp], 0
test eax, eax
je case.0x100cbca6.6
pop edi
pop ebp
mov dword [eax], 0
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 7
jne 0x100cbe55
mov edx, dword [esi + 0x14]
lea eax, [esi + 0x38]
add edx, ecx
push eax
push edx
call fcn.100d2e60
add esp, 8
lea eax, [esi + 0x30]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xc
ret
lea eax, [esi + 0x38]
xor edx, edx
push eax
push edx
call fcn.100d2e60
add esp, 8
lea eax, [esi + 0x30]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 8
jne 0x100cbe8d
mov eax, dword [esi + 0x14]
pop edi
pop ebp
pop ebx
cmp byte [ecx + eax], 0
setne al
mov byte [esi + 0x38], al
lea eax, [esi + 0x30]
pop esi
add esp, 0xc
ret
pop edi
xor al, al
pop ebp
mov byte [esi + 0x38], al
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 9
jne 0x100cbebe
mov eax, dword [esi + 0x14]
pop edi
pop ebp
pop ebx
mov edx, dword [ecx + eax]
mov eax, dword [ecx + eax + 4]
mov dword [esi + 0x3c], eax
lea eax, [esi + 0x30]
mov dword [esi + 0x38], edx
pop esi
add esp, 0xc
ret
pop edi
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
pop ebp
mov dword [esi + 0x3c], eax
lea eax, [esi + 0x30]
pop ebx
mov dword [esi + 0x38], edx
pop esi
add esp, 0xc
ret
xor eax, eax
lea ebp, [esi + 0x3c]
xor ebx, ebx
cmp byte [ecx + edx], 0xb
jne 0x100cbef7
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
add eax, ecx
add ebx, ecx
test ebp, ebp
je 0x100cbd02
pop edi
mov dword [ebp], ebx
pop ebp
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
lea edx, [esi + 0x38]
lea ebx, [esi + 0x3c]
test edx, edx
je 0x100cbf20
mov dword [edx], 0
mov ebp, dword [esi]
xor ecx, ecx
mov eax, dword [esi + 0xc]
cmp byte [eax + ebp], 0xc
jne 0x100cbf50
test ebx, ebx
je 0x100cbf40
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ebp]
mov dword [ebx], eax
test eax, eax
je 0x100cbf40
dec eax
mov dword [ebx], eax
test edx, edx
je 0x100cbf4b
mov eax, dword [esi + 0x18]
add eax, dword [esi]
mov dword [edx], eax
mov ecx, dword [esi + 0x1c]
add ecx, dword [esi]
lea eax, [esi + 0x40]
push eax
push ecx
call fcn.100d2e60
add esp, 8
lea eax, [esi + 0x30]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 0xd
lea ebx, [esi + 0x3c]
jmp 0x100cbce5
xor ebx, ebx
lea eax, [esi + 0x3c]
xor ebp, ebp
cmp byte [ecx + edx], 0xe
jne 0x100cbf97
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
add ebx, ecx
mov eax, dword [ecx + eax]
test eax, eax
lea ecx, [eax - 1]
cmovg ebp, ecx
lea eax, [esi + 0x3c]
test eax, eax
je 0x100cbf9d
mov dword [eax], ebp
pop edi
pop ebp
mov dword [esi + 0x38], ebx
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 0xf
lea ebp, [esi + 0x3c]
lea eax, [esi + 0x44]
lea ebx, [esi + 0x40]
jne 0x100cbff5
test ebx, ebx
je 0x100cbfcf
mov eax, dword [esi + 0x18]
mov eax, dword [ecx + eax]
test eax, eax
je 0x100cc1cd
dec eax
mov dword [ebx], eax
mov ecx, dword [esi + 0x20]
mov eax, dword [esi]
pop edi
mov eax, dword [ecx + eax]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x20]
add eax, dword [esi]
mov dword [ebp], eax
mov eax, dword [esi + 0x1c]
add eax, dword [esi]
pop ebp
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
test ebx, ebx
je 0x100cbfff
mov dword [ebx], 0
test eax, eax
je 0x100cc009
mov dword [eax], 0
test ebp, ebp
je 0x100cc014
mov dword [ebp], 0
pop edi
xor eax, eax
pop ebp
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 0x10
jne 0x100cbd1a
mov eax, dword [esi + 0x14]
pop edi
pop ebp
pop ebx
mov eax, dword [ecx + eax]
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
pop esi
add esp, 0xc
ret
xor eax, eax
lea ebx, [esi + 0x3c]
cmp byte [ecx + edx], 0x11
lea ebp, [esi + 0x38]
jne 0x100cc05e
mov eax, dword [esi + 0x14]
mov edx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 4]
mov eax, edx
jmp 0x100cc060
xor ecx, ecx
test ebp, ebp
je 0x100cc067
mov dword [ebp], ecx
test ebx, ebx
je case.0x100cbca6.6
pop edi
pop ebp
mov dword [ebx], eax
lea eax, [esi + 0x30]
pop ebx
pop esi
add esp, 0xc
ret
cmp byte [ecx + edx], 0x12
jmp 0x100cbea1
lea eax, [esi + 0x38]
push eax
push esi
call fcn.100ca9d0
add esp, 8
lea eax, [esi + 0x30]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xc
ret
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0xc
ret
push 0x101643b0
push str.bson_iter_value
push 0x951
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.document_len
push str.bson_iter_document
push 0x700
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.document
push str.bson_iter_document
push 0x701
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.array_len
push str.bson_iter_array
push 0x73e
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.array
push str.bson_iter_array
push 0x73f
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str._binary__binary_len
push str.bson_iter_binary
push 0x38b
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.len___0
push str.bson_iter_codewscope
push 0x5b3
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.26.1_017d46e88c.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
nop
popfd
ror byte [eax + edx], 173
mov esp, 0xbcde100c
or al, 0x10
sub bh, byte [ebp - 0x428eeff4]
or al, 16
sahf
mov ebp, -1123741684
or al, 0x10
xor bh, byte [esi - 0x4190eff4]
or al, 16
popfd
mov esi, -1092612084
or al, 0x10
adc byte [edi - 0x4097eff4], bh
or al, 16
je 0x100cc1f5
add byte [ebx + 0x27e818c4], al
push ebx
invalid
or al, 0x10
stosd dword es:[edi], eax
mov edi, -1071378420
or al, 0x10
inc edx
ror byte [eax + edx], 124
ror byte [eax + edx], 0x85
ror byte [eax + edx], 0x9d
ror byte [eax + edx], 0
add dword [edx], eax
add eax, dword [eax + 151521030]
push es
or cl, byte [ebx]
or al, 13
push cs
movups xmm2, xmmword [ecx]
adc dl, byte [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
push es