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

Disassembly:
sub esp, 0x48
push ebx
push ebp
movaps xmm0, xmm3
mov ebp, edx
push esi
mov esi, dword [esp + 0x58]
movsd qword [esp + 0x44], xmm0
mov ebx, dword [esp + 0x44]
mov eax, ebx
push edi
mov edi, ecx
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x4c]
or eax, ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x28], ebx
jne 0x1001aaa2
xor ecx, ecx
mov eax, ebp
test esi, esi
setne cl
sub eax, edi
add ecx, 5
add ecx, esi
cmp eax, ecx
jge 0x1001aa75
mov edx, 0x84
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov byte [edi], 0x30
inc edi
test esi, esi
je 0x1001aa8f
push esi
mov byte [edi], 0x2e
inc edi
push 0x30
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, esi
mov dword [edi], 0x30302b65
lea eax, [edi + 4]
xor edx, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov edx, ecx
inc esi
and edx, 0xfffff
shr ecx, 0x14
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], esi
test ecx, ecx
jne 0x1001aad4
xor esi, esi
mov eax, 0xfffffbce
xor ebx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
jmp 0x1001ad12
or edx, 0x100000
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], edx
lea eax, [ecx - 0x433]
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
xor eax, eax
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x20], edx
xor ebx, ebx
cmp dword [esp + 0x2c], 0xffffffcc
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x24], edx
mov edx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jl 0x1001acc9
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jns 0x1001ab3e
mov dword [esp + 0x40], eax
lea eax, [ebx + 0x78]
mov dword [esp + 0x34], 1
jmp 0x1001ab92
add ecx, 0xf
shr ecx, 4
mov eax, ecx
mov dword [esp + 0x40], ecx
imul ecx, ecx, 0x134410
shl eax, 4
add eax, 0x78
mov dword [esp + 0x44], eax
mov eax, 0x38e38e39
shr ecx, 0x12
add ecx, 0x19
mul ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
shr edx, 1
sub edx, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
js 0x1001acbd
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov edx, dword [esp + 0x30]
add eax, 8
mov dword [esp + 0x48], eax
mov eax, ebx
shld edx, eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x34]
shl eax, 8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebx
lea eax, [edx + edx*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
nop
mov eax, dword [esp + 0x40]
push dword [esp + 0x44]
push dword [esp + 0x30]
movzx eax, word [eax*2 + 0x101fb810]
add eax, edx
mov edx, dword [esp + 0x50]
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x101c5e00]
call fcn.1001a610
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, eax
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x1001ac38
lea ebx, [ecx + 9]
cmp ebx, esi
ja 0x1001acb2
mov ecx, ebp
sub ecx, edi
cmp ecx, 9
jl 0x1001aa66
mov edx, edi
mov ecx, eax
call fcn.1001f1a0
mov esi, dword [esp + 0x1c]
add edi, 9
mov ecx, ebx
xor ebx, ebx
jmp 0x1001ac8e
xor ebx, ebx
test edx, edx
je 0x1001ac92
mov ecx, edx
call fcn.1001a4e0
mov ebx, eax
mov eax, dword [esp + 0x38]
dec eax
add eax, ebx
mov dword [esp + 0x14], eax
cmp ebx, esi
ja 0x1001acc5
cmp dword [esp + 0x3c], 0
jbe 0x1001ac7b
mov ecx, ebp
lea eax, [ebx + 1]
sub ecx, edi
cmp ecx, eax
jl 0x1001aa66
push edi
mov ecx, ebx
call fcn.1001a950
add esp, 4
add edi, ebx
jmp 0x1001ac89
cmp edi, ebp
je 0x1001aa66
mov al, dl
add al, 0x30
mov byte [edi], al
mov ecx, ebx
xor ebx, ebx
inc edi
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x34]
sub dword [esp + 0x38], 9
dec edx
mov dword [esp + 0x34], edx
test edx, edx
jns 0x1001abd0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x1001acc9
mov eax, dword [esp + 0x14]
mov ebx, 9
jmp 0x1001acc9
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x1001acc9
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
mov dword [esp + 0x48], ebx
jge 0x1001ae72
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x1001ae76
mov eax, dword [esp + 0x20]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
neg eax
mov dword [esp + 0x40], eax
movzx ecx, byte [eax + 0x101fdaa8]
mov dword [esp + 0x30], ecx
cmp ecx, 0xc8
jae 0x1001ae76
mov esi, ecx
lea edx, [esi + esi*8]
mov dword [esp + 0x34], edx
movzx ecx, word [eax*2 + 0x101fb890]
movzx eax, byte [eax + 0x101fdaa8]
sub ecx, eax
add ecx, esi
mov esi, dword [esp + 0x40]
movzx eax, word [esi*2 + 0x101fb892]
cmp ecx, eax
jb 0x1001ad68
xor ecx, ecx
jmp 0x1001ad9f
lea eax, [ecx + ecx*2]
mov edx, 8
sub edx, esi
lea ecx, [eax*8 + 0x101cd0c0]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
shld eax, esi, 8
shl edx, 4
sub edx, dword [esp + 0x20]
push eax
shl esi, 8
push esi
call fcn.1001a610
mov edx, dword [esp + 0x3c]
add esp, 8
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
test eax, eax
je 0x1001adff
lea esi, [eax + 9]
cmp esi, dword [esp + 0x1c]
ja 0x1001ae6d
mov eax, ebp
sub eax, edi
cmp eax, 9
jl 0x1001aa66
mov edx, edi
call fcn.1001f1a0
mov edx, dword [esp + 0x34]
add edi, 9
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10]
inc dword [esp + 0x30]
add edx, 9
mov dword [esp + 0x34], edx
cmp edx, 0x708
jge 0x1001ae76
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
jmp 0x1001ad41
test ecx, ecx
je 0x1001add7
call fcn.1001a4e0
mov ebx, eax
sub eax, edx
sub eax, 0xa
mov dword [esp + 0x14], eax
cmp ebx, dword [esp + 0x1c]
ja 0x1001ae72
cmp dword [esp + 0x3c], 0
jbe 0x1001ae4f
mov ecx, ebp
lea eax, [ebx + 1]
sub ecx, edi
cmp ecx, eax
jl 0x1001aa66
mov esi, dword [esp + 0x10]
mov ecx, ebx
push edi
mov edx, esi
call fcn.1001a950
mov edx, dword [esp + 0x38]
add edi, ebx
mov dword [esp + 0x1c], ebx
add esp, 4
xor ebx, ebx
inc edi
jmp 0x1001addb
cmp edi, ebp
je 0x1001aa66
mov esi, dword [esp + 0x10]
mov al, cl
add al, 0x30
mov dword [esp + 0x18], ebx
mov byte [edi], al
xor ebx, ebx
inc edi
jmp 0x1001addb
mov ebx, 9
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
sub eax, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x38], eax
cmovne ecx, esi
xor esi, esi
mov edx, ecx
cmp ebx, eax
jbe 0x1001af5c
sub ebx, eax
je 0x1001af5c
nop dword [eax]
mov eax, 0xcccccccd
mov esi, ecx
mul ecx
shr edx, 3
mov ecx, edx
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
sub ebx, 1
jne 0x1001aea0
mov dword [esp + 0x40], ecx
cmp esi, 5
jne 0x1001af58
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
lea edx, [eax + ecx]
neg edx
test edx, edx
jle 0x1001af20
cmp edx, 0x3c
jge 0x1001af18
xor ecx, ecx
xor eax, eax
bts ecx, edx
cmp edx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp edx, 0x40
mov edx, dword [esp + 0x24]
cmovae eax, ecx
add ecx, 0xffffffff
adc eax, 0xffffffff
and ecx, ebx
and eax, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
je 0x1001af24
xor cl, cl
jmp 0x1001af26
mov edx, dword [esp + 0x24]
xor cl, cl
jmp 0x1001af26
mov edx, dword [esp + 0x24]
mov cl, 1
test eax, eax
jns 0x1001af4e
test cl, cl
je 0x1001af4c
neg eax
push edx
push ebx
mov ecx, eax
call fcn.1001a550
add esp, 8
test al, al
je 0x1001af4c
mov edx, dword [esp + 0x40]
mov cl, 1
movzx esi, cl
inc esi
jmp 0x1001af67
xor cl, cl
mov edx, dword [esp + 0x40]
movzx esi, cl
inc esi
jmp 0x1001af67
mov edx, dword [esp + 0x40]
mov eax, 5
cmp eax, esi
sbb esi, esi
neg esi
cmp dword [esp + 0x18], 0
je 0x1001afa1
mov ebx, dword [esp + 0x38]
mov eax, ebp
sub eax, edi
cmp eax, ebx
jl 0x1001aa66
test edx, edx
jne 0x1001af92
push ebx
push 0x30
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, ebx
jmp 0x1001afd9
push edi
mov ecx, ebx
call fcn.1001f220
add esp, 4
add edi, ebx
jmp 0x1001afd9
cmp dword [esp + 0x3c], 0
jbe 0x1001afcb
mov ebx, dword [esp + 0x38]
mov ecx, ebp
sub ecx, edi
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x1001aa66
push edi
mov ecx, ebx
call fcn.1001a950
inc edi
add esp, 4
add edi, ebx
jmp 0x1001afd9
cmp edi, ebp
je 0x1001aa66
add dl, 0x30
mov byte [edi], dl
inc edi
test esi, esi
je 0x1001b01d
mov edx, dword [esp + 0x54]
mov eax, edi
cmp edi, edx
je 0x1001b001
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x1001affd
cmp cl, 0x39
jne 0x1001b00f
mov byte [eax], 0x30
mov esi, 1
cmp eax, edx
jne 0x1001afe7
mov byte [eax], 0x31
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
jmp 0x1001b021
cmp esi, 1
je 0x1001b019
test cl, 1
je 0x1001b01d
inc cl
mov byte [eax], cl
mov eax, dword [esp + 0x14]
cdq
mov ecx, ebp
mov ebx, eax
xor ebx, edx
sub ebx, edx
xor edx, edx
cmp ebx, 0x64
setge dl
sub ecx, edi
add edx, 4
cmp ecx, edx
jl 0x1001aa66
cmp dword [esp + 0x14], 0
mov byte [edi], 0x65
setl al
lea eax, [eax*2 + 0x2b]
mov byte [edi + 1], al
cmp ebx, 0x64
jl 0x1001b096
mov eax, 0x66666667
imul ebx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov ax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
mov al, cl
shl cl, 2
add al, cl
add al, al
sub bl, al
add bl, 0x30
mov byte [edi + 4], bl
add edi, 5
mov eax, edi
xor edx, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov ax, word [ebx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 2], ax
add edi, 4
mov eax, edi
xor edx, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov eax, dword [esp + 4]
test eax, eax
jns 0x10021190
xorps xmm0, xmm0
mov eax, 6
cvtss2sd xmm0, xmm2
mov dword [esp + 4], eax
movaps xmm3, xmm0
jmp 0x1001aa20
cmp eax, 0x3b9aca00
jge 0x100211aa
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
mov dword [esp + 4], eax
movaps xmm3, xmm0
jmp 0x1001aa20
mov ecx, 0x84
mov eax, edx
mov edx, ecx
ret