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

Disassembly:
sub esp, 0xc
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x442df7
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.0x4429f6.6
cmp eax, 0x7f
ja case.0x4429f6.0
movzx eax, byte [eax + 0x442fa0]
jmp dword [eax*4 + 0x442f50]
cmp byte [ecx + edx], 1
jne 0x442a1b
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 0x442a60
test ebx, ebx
je 0x442a4d
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 0x442a6a
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 0x442e28
test ecx, ecx
je 0x442e59
mov dword [ecx], 0
mov dword [edx], 0
mov ebx, dword [esi]
mov eax, dword [esi + 0xc]
cmp byte [ebx + eax], 3
jne case.0x4429f6.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 0x442e8a
test ecx, ecx
je 0x442ebb
mov dword [ecx], 0
mov dword [edx], 0
mov ebx, dword [esi]
mov eax, dword [esi + 0xc]
cmp byte [ebx + eax], 4
jmp 0x442aa5
lea ebx, [esi + 0x38]
lea ebp, [esi + 0x3c]
lea eax, [esi + 0x40]
test ebx, ebx
je 0x442b03
test ebp, ebp
je 0x442eec
cmp byte [ecx + edx], 5
jne 0x442b54
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.0x4429f6.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.0x4429f6.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 0x442b5e
mov dword [ebx], 0
test ebp, ebp
je 0x442b69
mov dword [ebp], 0
test eax, eax
je case.0x4429f6.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 0x442ba5
mov edx, dword [esi + 0x14]
lea eax, [esi + 0x38]
add edx, ecx
push eax
push edx
call fcn.00449d70
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.00449d70
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 0x442bdd
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 0x442c0e
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 0x442c47
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
add eax, ecx
add ebx, ecx
test ebp, ebp
je 0x442a52
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 0x442c70
mov dword [edx], 0
mov ebp, dword [esi]
xor ecx, ecx
mov eax, dword [esi + 0xc]
cmp byte [eax + ebp], 0xc
jne 0x442ca0
test ebx, ebx
je 0x442c90
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ebp]
mov dword [ebx], eax
test eax, eax
je 0x442c90
dec eax
mov dword [ebx], eax
test edx, edx
je 0x442c9b
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.00449d70
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 0x442a35
xor ebx, ebx
lea eax, [esi + 0x3c]
xor ebp, ebp
cmp byte [ecx + edx], 0xe
jne 0x442ce7
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 0x442ced
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 0x442d45
test ebx, ebx
je 0x442d1f
mov eax, dword [esi + 0x18]
mov eax, dword [ecx + eax]
test eax, eax
je 0x442f1d
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 0x442d4f
mov dword [ebx], 0
test eax, eax
je 0x442d59
mov dword [eax], 0
test ebp, ebp
je 0x442d64
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 0x442a6a
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 0x442dae
mov eax, dword [esi + 0x14]
mov edx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 4]
mov eax, edx
jmp 0x442db0
xor ecx, ecx
test ebp, ebp
je 0x442db7
mov dword [ebp], ecx
test ebx, ebx
je case.0x4429f6.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 0x442bf1
lea eax, [esi + 0x38]
push eax
push esi
call fcn.00441710
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 str.iter
push str.bson_iter_value
push 0x951
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.document_len
push str.bson_iter_document
push 0x700
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.document
push str.bson_iter_document
push 0x701
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.array_len
push str.bson_iter_array
push 0x73e
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.array
push str.bson_iter_array
push 0x73f
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str._binary__binary_len
push str.bson_iter_binary
push 0x38b
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.len___0
push str.bson_iter_codewscope
push 0x5b3
push str.C:Usersprocr_vcpkg_buildtreeslibbson_src1.24.3_34dd83f208.clean_srclibbson_src_bson_bson_iter.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
nop
in eax, dx
sub eax, 704446532
inc esp
add byte [esi], ch
sub al, byte [eax + eax + 0x7a]
sub al, byte [eax + eax - 0x3f]
sub al, byte [eax + eax - 0x12]
sub al, byte [eax + eax + 0x55]
sub al, byte [eax + eax - 0x7e]
sub eax, dword [eax + eax - 0x41]
sub eax, dword [eax + eax - 0x13]
sub eax, dword [eax + eax + 0x30]
sub al, 0x44
add byte [eax + 0x2c], ah
inc esp
add byte [eax - 0x3bffbbd4], bh
sub al, 0x44
add bl, bh
sub al, 0x44
add byte [ebp + ebp + 0x44], dh
add byte [edx - 0x33ffbbd3], dl
sub eax, 0x2dd50044
inc esp
add ch, ch
sub eax, 0x1000044
add al, byte [ebx]
add al, 5
push es
pop es
or byte [ecx], cl
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