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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
movsd xmm1, qword [ebp + 8]
xorpd xmm0, xmm0
ucomisd xmm1, xmm0
jb 0x4b9706
mov ebx, dword [ebp + 0x1c]
lea eax, [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov eax, dword [eax + 4]
movzx ecx, al
ucomisd xmm0, xmm1
jae 0x4b8d49
test esi, esi
js 0x4b8dbc
mov dword [esp + 0x5c], eax
movsd qword [esp + 0x90], xmm1
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov edi, edx
and edi, 0xfffff
shr edx, 0x14
and edx, 0x7ff
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edi
je 0x4b8e6c
lea eax, [edx - 0x433]
shld edi, esi, 1
lea ebx, [esi + esi]
or edi, 0x200000
jmp 0x4b8ea6
test esi, esi
jle 0x4b8d8e
cmp ecx, 2
jne 0x4b8d8e
mov eax, dword [ebx + 0xc]
cmp eax, esi
jae 0x4b8d68
mov eax, dword [ebx]
mov dword [esp], esi
mov ecx, ebx
call dword [eax]
sub esp, 4
mov eax, dword [ebx + 0xc]
cmp eax, esi
cmovae eax, esi
mov dword [ebx + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x30
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
neg esi
jmp 0x4b96c2
mov ecx, dword [ebx + 8]
lea eax, [ecx + 1]
cmp dword [ebx + 0xc], eax
jae 0x4b8dab
mov edx, dword [ebx]
mov dword [esp], eax
mov ecx, ebx
call dword [edx]
sub esp, 4
mov ecx, dword [ebx + 8]
lea eax, [ecx + 1]
mov edx, dword [ebx + 4]
mov dword [ebx + 8], eax
mov byte [edx + ecx], 0x30
xor esi, esi
jmp 0x4b96c2
test eax, 0x40000
jne 0x4b9182
xorpd xmm0, xmm0
movapd xmmword [esp + 0x80], xmm0
movsd qword [esp + 4], xmm1
lea eax, [esp + 0x80]
mov dword [esp], eax
call fcn.004aa6e0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov edx, eax
or edx, 1
bsr esi, ecx
xor esi, 0x1f
bsr edx, edx
xor edx, 0x1f
or edx, 0x20
test ecx, ecx
cmovne edx, esi
xor edx, 0x3f
movzx edx, byte [edx + 0x589bd0]
cmp eax, dword [edx*8 + 0x589c10]
mov esi, ecx
sbb esi, dword [edx*8 + 0x589c14]
sbb edx, 0
mov esi, dword [ebx + 8]
lea edi, [edx + esi]
cmp dword [ebx + 0xc], edi
jb 0x4b9291
mov dword [ebx + 8], edi
mov edi, dword [ebx + 4]
test edi, edi
je 0x4b9291
add edi, esi
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004abf00
mov esi, dword [esp + 0x88]
jmp 0x4b96c2
mov eax, esi
or eax, edi
je 0x4b977c
bsr eax, edi
xor eax, 0x1f
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
mov eax, 0xfffffbd9
sub eax, ecx
add cl, 0xf6
shld edi, esi, cl
mov edx, esi
shl edx, cl
xor ebx, ebx
test cl, 0x20
cmovne edi, edx
cmove ebx, edx
imul esi, eax, 0x4d105
sar esi, 0x14
mov edx, 2
sub edx, esi
imul ecx, edx, 0x1a934f
shr ecx, 0x13
add ecx, eax
shld edi, ebx, cl
shl ebx, cl
add esi, 0xfffffffe
mov dword [esp + 0x38], esi
xor eax, eax
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
lea eax, [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004a9ab0
mov eax, edi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0xbc]
mul edi
mov esi, edx
mov dword [esp + 0x44], eax
mov eax, ebx
mul edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x34]
mul ecx
mov edi, edx
mov dword [esp + 0x4c], eax
mov eax, ebx
mul ecx
mov dword [esp + 0x3c], eax
xor eax, eax
add edx, dword [esp + 0x4c]
setb al
add edi, dword [esp + 0x44]
adc esi, 0
add edi, dword [esp + 0x40]
adc esi, 0
add edx, dword [esp + 0x48]
mov dword [esp + 0x48], edx
adc edi, eax
adc esi, 0
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x34]
mul ecx
mov ebx, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mul ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x34]
mul ecx
mov ecx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mul dword [esp + 0x58]
xor eax, eax
add edx, dword [esp + 0x34]
setb al
add ecx, dword [esp + 0x40]
adc ebx, 0
add ecx, dword [esp + 0x4c]
adc ebx, 0
add edx, dword [esp + 0x44]
adc ecx, eax
adc ebx, 0
add ecx, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
mov ecx, 0
adc ebx, dword [esp + 0x48]
mov dword [esp + 0x48], ebx
adc edi, 0
adc esi, 0
mov edx, 0xa
mov eax, edi
mul edx
mov ebx, 0xa763ffff
cmp ebx, edi
mov ebx, 0xde0b6b3
sbb ebx, esi
lea ebx, [esi + esi*4]
lea edx, [edx + ebx*2]
cmovb edx, esi
mov dword [esp + 0x3c], edx
cmovb eax, edi
adc ecx, 0x12
mov edi, dword [esp + 0x50]
cmp edi, 2
mov dword [esp + 0x30], eax
je 0x4b900f
mov esi, dword [ebp + 0x10]
movsd xmm0, qword [ebp + 8]
mov edx, dword [esp + 0x38]
jmp 0x4b9039
mov edx, dword [esp + 0x38]
lea ebx, [edx + ecx]
test ebx, ebx
jle 0x4b902f
mov esi, ecx
mov ecx, ebx
xor ecx, 0x7fffffff
cmp ecx, dword [ebp + 0x10]
mov ecx, esi
jb 0x4b9738
mov esi, dword [ebp + 0x10]
add esi, ebx
movsd xmm0, qword [ebp + 8]
mov ebx, ecx
sub ebx, esi
jle 0x4b9122
test esi, esi
jle 0x4b92de
mov edi, 0x6df37f67
mov ecx, dword [esp + 0x3c]
mov eax, ecx
mul edi
mov edi, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov edx, 0x6df37f67
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], edx
mov edx, 0x5ef6eae0
mov eax, ecx
mul edx
mov ecx, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x30]
mov edx, 0x5ef6eae0
mul edx
add ebx, dword [esp + 0x38]
xor eax, eax
add edx, dword [esp + 0x54]
setb al
add ecx, dword [esp + 0x4c]
adc edi, 0
add ecx, dword [esp + 0x58]
adc edi, 0
add edx, dword [esp + 0x40]
mov dword [esp + 0x60], ebx
adc ecx, eax
adc edi, 0
mov ecx, 0xabf41c00
mov eax, edi
mul ecx
lea ecx, [edi + edi*2]
sub edx, ecx
add eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
cmp esi, 9
mov ebx, 9
mov dword [esp + 0x34], esi
cmovl ebx, esi
mov eax, dword [ebp + 0x1c]
mov esi, dword [eax + 4]
test bl, 1
jne 0x4b9347
mov ecx, 0x1ad7f29b
mov eax, edi
mul ecx
shrd eax, edx, 0x14
shr edx, 0x14
add eax, 1
adc edx, 0
movzx ecx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi], cx
mov edi, 2
cmp edi, ebx
jb 0x4b9371
jmp 0x4b93f8
mov dword [esp + 0x34], esi
lea eax, [ecx + edx]
dec eax
mov dword [esp + 0x60], eax
test dword [esp + 0x5c], 0x40000
jne 0x4b91ad
mov eax, 0xfffff
mov ecx, 0xffffffff
add ecx, 1
adc eax, 0
mov ebx, dword [esp + 0x78]
or eax, ebx
mov edi, dword [esp + 0x7c]
or ecx, edi
mov edx, dword [esp + 0x54]
test edx, edx
lea esi, [edx - 0x433]
mov dword [esp + 0x30], esi
mov esi, 0xfffffbce
cmovne esi, dword [esp + 0x30]
mov dword [esp + 0x30], esi
cmove ecx, edi
cmove eax, ebx
or edi, ebx
sete bh
cmp edx, 2
jmp 0x4b91f2
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.004aa280
mov esi, edx
mov dword [esp + 0xc4], ebx
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004abcb0
jmp 0x4b96c2
cvtsd2ss xmm0, xmm0
movd esi, xmm0
mov edi, esi
and edi, 0x7fffff
and esi, 0x7f800000
mov ecx, esi
shr ecx, 0x17
add ecx, 0xffffff6a
xor eax, eax
test esi, esi
mov edx, 0xffffff6b
cmovne edx, ecx
mov dword [esp + 0x30], edx
lea ecx, [edi + 0x800000]
cmove ecx, edi
test edi, edi
sete bh
cmp esi, 0x1000000
setae bl
and bl, bh
movzx edi, bl
mov edx, dword [esp + 0x50]
cmp edx, 2
lea esi, [edi + 4]
cmovne esi, edi
mov ebx, dword [esp + 0x34]
cmp ebx, 0x2ff
mov edi, 0x2ff
cmovl edi, ebx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], 0
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0x10], xmm0
movups xmm0, xmmword [esp + 0x98]
movups xmmword [esp], xmm0
lea eax, [esp + 0x60]
mov dword [esp + 0x24], eax
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov edi, edx
mov dword [esp + 0x18], esi
call fcn.004b18d0
jmp 0x4b9673
xorpd xmm0, xmm0
movapd xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea esi, [esp + 0x60]
mov dword [esp], esi
call fcn.004abf00
mov dword [esp + 0xc8], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004abc90
mov esi, dword [esp + 0x88]
jmp 0x4b96c2
add edx, ecx
mov dword [esp + 0x60], edx
test esi, esi
js 0x4b9632
mov eax, 1
mov ebx, dword [ebp + 0x1c]
cmp dword [ebx + 0xc], 0
jne 0x4b9313
mov eax, dword [ebx]
mov dword [esp], 1
mov ecx, ebx
call dword [eax]
sub esp, 4
xor eax, eax
cmp dword [ebx + 0xc], 0
setne al
xor ecx, ecx
mov edx, dword [esp + 0x44]
or edx, dword [esp + 0x48]
mov dword [ebx + 8], eax
setne cl
mov eax, dword [esp + 0x30]
or eax, ecx
cmp eax, 0x44f40001
sbb dword [esp + 0x3c], 0x45639182
mov eax, dword [ebx + 4]
jb 0x4b963e
mov byte [eax], 0x31
jmp 0x4b9673
mov edx, 0x2af31dc5
mov eax, edi
mul edx
shrd eax, edx, 0x18
shr edx, 0x18
add eax, 1
adc edx, 0
mov ecx, edx
add cl, 0x30
mov byte [esi], cl
mov edi, 1
cmp edi, ebx
jae 0x4b93f8
mov ecx, 0x64
mul ecx
movzx ecx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + edi], cx
lea ecx, [edi + 2]
cmp ecx, ebx
jge 0x4b93f8
and eax, 0xfffffffc
mov ecx, 0x64
mul ecx
movzx ecx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + edi + 2], cx
lea ecx, [edi + 4]
cmp ecx, ebx
jge 0x4b93f8
and eax, 0xfffffff0
mov dword [esp + 0x40], ecx
mov ecx, 0x64
mul ecx
movzx ecx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x3c]
mov word [ebx + esi], cx
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
add edi, 6
cmp edi, ebx
jge 0x4b93f8
and eax, 0xffffffc0
mov ecx, 0x64
mul ecx
movzx ecx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + edi], cx
mov esi, dword [esp + 0x34]
cmp esi, 9
jg 0x4b9465
jne 0x4b94ef
mov ecx, 0x2a05f200
mov eax, dword [esp + 0x30]
mov esi, eax
cmp ecx, eax
mov ecx, 1
mov eax, dword [esp + 0x38]
sbb ecx, eax
mov ebx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x50]
jb 0x4b95e3
mov ecx, esi
mov esi, 0x2a05f200
xor ecx, esi
mov esi, 1
xor eax, esi
mov esi, 9
or eax, ecx
jne 0x4b9655
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x48]
jne 0x4b95e3
and edx, 1
je 0x4b9655
jmp 0x4b95e3
mov edx, 0x19999999
mov ecx, dword [esp + 0x30]
mov eax, ecx
mul edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov edx, 0x9999999a
mov ebx, dword [esp + 0x38]
mov eax, ebx
mul edx
mov esi, edx
mov edi, eax
mov eax, ecx
mov ecx, 0x9999999a
mul ecx
imul ecx, ebx, 0x19999999
xor eax, eax
add edx, edi
setb al
add esi, dword [esp + 0x40]
add esi, ecx
add edx, dword [esp + 0x3c]
adc esi, eax
lea eax, [esi + esi]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
lea ecx, [eax - 9]
mov ebx, dword [ebp + 0x1c]
mov edi, dword [ebx + 4]
test cl, 1
jne 0x4b952a
mov edx, 0x1ad7f29b
mov eax, esi
mul edx
shrd eax, edx, 0x14
shr edx, 0x14
add eax, 1
adc edx, 0
movzx esi, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 9], si
mov esi, 2
jmp 0x4b954d
mov ecx, 8
sub ecx, ebx
cmp dword [ecx*4 + 0x589548], eax
mov ebx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x50]
jbe 0x4b95cc
mov ecx, dword [esp + 0x30]
or ecx, dword [esp + 0x44]
mov dword [esp + 0x30], ecx
shr eax, 0x1f
mov ecx, dword [esp + 0x38]
or ecx, dword [esp + 0x48]
or ecx, dword [esp + 0x30]
jmp 0x4b95be
mov edx, 0x2af31dc5
mov eax, esi
mul edx
shrd eax, edx, 0x18
shr edx, 0x18
add eax, 1
adc edx, 0
mov ebx, edx
add bl, 0x30
mov byte [edi + 9], bl
mov esi, 1
mov ebx, dword [esp + 0x38]
lea ebx, [ebx + ebx*4]
mov dword [esp + 0x38], ebx
cmp esi, ecx
mov ebx, dword [ebp + 0x1c]
jae 0x4b9586
nop
mov edx, 0x64
mul edx
mov ebx, ecx
mov ecx, edi
movzx edi, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + esi + 9], di
mov edi, ecx
mov ecx, ebx
add esi, 2
cmp esi, ebx
jl 0x4b9560
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, 0x11
mov edi, dword [esp + 0x50]
jg 0x4b95da
mov dword [esp + 0x30], ecx
mov ecx, 0x11
sub ecx, esi
cmp dword [ecx*4 + 0x589548], eax
jbe 0x4b95cc
mov ecx, dword [esp + 0x44]
or ecx, dword [esp + 0x48]
shr eax, 0x1f
or dword [esp + 0x30], ecx
mov ecx, 0
setne cl
or edx, ecx
test edx, eax
je 0x4b964b
mov eax, dword [ebx + 4]
inc byte [esi + eax - 1]
cmp esi, 2
jge 0x4b95ee
jmp 0x4b961c
cmp ecx, 5
jbe 0x4b96e4
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x34]
inc byte [esi + eax - 1]
lea eax, [esi + 1]
nop word cs:[eax + eax]
mov ecx, dword [ebx + 4]
cmp byte [ecx + eax - 2], 0x39
jle 0x4b961c
mov byte [ecx + eax - 2], 0x30
mov ecx, dword [ebx + 4]
inc byte [ecx + eax - 3]
dec eax
cmp eax, 2
ja 0x4b9600
mov eax, dword [ebx + 4]
cmp byte [eax], 0x39
jle 0x4b964b
mov byte [eax], 0x31
cmp edi, 2
je 0x4b9643
inc dword [esp + 0x60]
jmp 0x4b964b
mov ebx, dword [ebp + 0x1c]
mov dword [ebx + 8], 0
jmp 0x4b9673
mov byte [eax], 0x30
jmp 0x4b9673
mov eax, dword [ebx + 4]
mov byte [eax + esi], 0x30
inc esi
mov eax, esi
test esi, esi
js 0x4b979e
mov eax, dword [ebx + 0xc]
cmp eax, esi
jae 0x4b966b
mov eax, dword [ebx]
mov dword [esp], esi
mov ecx, ebx
call dword [eax]
sub esp, 4
mov eax, dword [ebx + 0xc]
cmp eax, esi
cmovb esi, eax
mov dword [ebx + 8], esi
cmp edi, 2
mov eax, dword [esp + 0x5c]
je 0x4b96be
and eax, 0x80000
jne 0x4b96be
mov esi, dword [ebx + 8]
test esi, esi
je 0x4b96b1
mov eax, dword [esp + 0x60]
mov ecx, dword [ebx + 4]
inc eax
nop word cs:[eax + eax]
cmp byte [ecx + esi - 1], 0x30
jne 0x4b96cc
dec esi
mov dword [esp + 0x60], eax
inc eax
test esi, esi
jne 0x4b96a0
mov eax, dword [ebx + 0xc]
xor esi, esi
cmp eax, esi
cmovb esi, eax
mov dword [ebx + 8], esi
mov esi, dword [esp + 0x60]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx + 0xc]
cmp eax, esi
jae 0x4b96b6
mov eax, dword [ebx]
mov dword [esp], esi
mov ecx, ebx
call dword [eax]
sub esp, 4
mov eax, dword [ebx + 0xc]
jmp 0x4b96b6
jne 0x4b96fd
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x48]
jne 0x4b95e3
and edx, 1
jne 0x4b95e3
mov esi, dword [esp + 0x34]
jmp 0x4b9655
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp], eax
mov dword [esp + 0x10], str.value_is_negative
mov dword [esp + 0xc], 0xcd1
mov dword [esp + 8], str.external_fmtlib_include_fmt_format.h
call fcn.004a8720
call fcn.0049a9b0
mov dword [esp], str.number_is_too_big
lea esi, [esp + 0x60]
mov ecx, esi
call fcn.0049d8a0
sub esp, 4
mov dword [esp + 0x60], 0x589584
mov ecx, esi
call fcn.0049c060
mov esi, eax
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp + 0x10], esi
mov dword [esp], eax
mov dword [esp + 0xc], 0xad8
jmp 0x4b9726
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp], eax
mov dword [esp + 0x10], str.zeros_should_not_appear_here
mov dword [esp + 0xc], 0xd0a
jmp 0x4b9726
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp], eax
mov dword [esp + 0x10], str.negative_value
mov dword [esp + 0xc], 0x189
mov dword [esp + 8], str.external_fmtlib_include_fmt_core.h
call fcn.004a8720
call fcn.0049a9b0