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

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
mov esi, dword [esp + 0x58]
mov ebp, edx
movsd qword [esp + 0x44], xmm3
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 0x1001a9ef
xor ecx, ecx
mov eax, ebp
test esi, esi
setne cl
sub eax, edi
add ecx, 5
add ecx, esi
cmp eax, ecx
jge 0x1001a9c2
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 0x1001a9dc
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 0x1001aa21
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 0x1001ac62
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 0x1001ac19
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jns 0x1001aa8b
mov dword [esp + 0x40], eax
lea eax, [ebx + 0x78]
mov dword [esp + 0x34], 1
jmp 0x1001aadf
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 0x1001ac0d
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 dword [eax]
mov eax, dword [esp + 0x40]
push dword [esp + 0x44]
push dword [esp + 0x30]
movzx eax, word [eax*2 + 0x101f3d40]
add eax, edx
mov edx, dword [esp + 0x50]
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x101bede0]
call fcn.1001a560
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, eax
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x1001ab88
lea ebx, [ecx + 9]
cmp ebx, esi
ja 0x1001ac02
mov ecx, ebp
sub ecx, edi
cmp ecx, 9
jl 0x1001a9b3
mov edx, edi
mov ecx, eax
call fcn.1001f400
mov esi, dword [esp + 0x1c]
add edi, 9
mov ecx, ebx
xor ebx, ebx
jmp 0x1001abde
xor ebx, ebx
test edx, edx
je 0x1001abe2
mov ecx, edx
call fcn.1001a430
mov ebx, eax
mov eax, dword [esp + 0x38]
dec eax
add eax, ebx
mov dword [esp + 0x14], eax
cmp ebx, esi
ja 0x1001ac15
cmp dword [esp + 0x3c], 0
jbe 0x1001abcb
mov ecx, ebp
lea eax, [ebx + 1]
sub ecx, edi
cmp ecx, eax
jl 0x1001a9b3
push edi
mov ecx, ebx
call fcn.1001a8a0
add esp, 4
add edi, ebx
jmp 0x1001abd9
cmp edi, ebp
je 0x1001a9b3
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 0x1001ab20
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x1001ac19
mov eax, dword [esp + 0x14]
mov ebx, 9
jmp 0x1001ac19
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x1001ac19
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
mov dword [esp + 0x48], ebx
jge 0x1001adc2
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 0x1001adc6
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 + 0x101f6038]
mov dword [esp + 0x30], ecx
cmp ecx, 0xc8
jae 0x1001adc6
mov esi, ecx
lea edx, [esi + esi*8]
mov dword [esp + 0x34], edx
movzx ecx, word [eax*2 + 0x101f3dc0]
movzx eax, byte [eax + 0x101f6038]
sub ecx, eax
add ecx, esi
mov esi, dword [esp + 0x40]
movzx eax, word [esi*2 + 0x101f3dc2]
cmp ecx, eax
jb 0x1001acb8
xor ecx, ecx
jmp 0x1001acef
lea eax, [ecx + ecx*2]
mov edx, 8
sub edx, esi
lea ecx, [eax*8 + 0x101c60a0]
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.1001a560
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 0x1001ad4f
lea esi, [eax + 9]
cmp esi, dword [esp + 0x1c]
ja 0x1001adbd
mov eax, ebp
sub eax, edi
cmp eax, 9
jl 0x1001a9b3
mov edx, edi
call fcn.1001f400
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 0x1001adc6
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
jmp 0x1001ac91
test ecx, ecx
je 0x1001ad27
call fcn.1001a430
mov ebx, eax
sub eax, edx
sub eax, 0xa
mov dword [esp + 0x14], eax
cmp ebx, dword [esp + 0x1c]
ja 0x1001adc2
cmp dword [esp + 0x3c], 0
jbe 0x1001ad9f
mov ecx, ebp
lea eax, [ebx + 1]
sub ecx, edi
cmp ecx, eax
jl 0x1001a9b3
mov esi, dword [esp + 0x10]
mov ecx, ebx
push edi
mov edx, esi
call fcn.1001a8a0
mov edx, dword [esp + 0x38]
add edi, ebx
mov dword [esp + 0x1c], ebx
add esp, 4
xor ebx, ebx
inc edi
jmp 0x1001ad2b
cmp edi, ebp
je 0x1001a9b3
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 0x1001ad2b
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 0x1001aeac
sub ebx, eax
je 0x1001aeac
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 0x1001adf0
mov dword [esp + 0x40], ecx
cmp esi, 5
jne 0x1001aea8
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 0x1001ae70
cmp edx, 0x3c
jge 0x1001ae68
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 0x1001ae74
xor cl, cl
jmp 0x1001ae76
mov edx, dword [esp + 0x24]
xor cl, cl
jmp 0x1001ae76
mov edx, dword [esp + 0x24]
mov cl, 1
test eax, eax
jns 0x1001ae9e
test cl, cl
je 0x1001ae9c
neg eax
push edx
push ebx
mov ecx, eax
call fcn.1001a4a0
add esp, 8
test al, al
je 0x1001ae9c
mov edx, dword [esp + 0x40]
mov cl, 1
movzx esi, cl
inc esi
jmp 0x1001aeb7
xor cl, cl
mov edx, dword [esp + 0x40]
movzx esi, cl
inc esi
jmp 0x1001aeb7
mov edx, dword [esp + 0x40]
mov eax, 5
cmp eax, esi
sbb esi, esi
neg esi
cmp dword [esp + 0x18], 0
je 0x1001aef1
mov ebx, dword [esp + 0x38]
mov eax, ebp
sub eax, edi
cmp eax, ebx
jl 0x1001a9b3
test edx, edx
jne 0x1001aee2
push ebx
push 0x30
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, ebx
jmp 0x1001af29
push edi
mov ecx, ebx
call fcn.1001f480
add esp, 4
add edi, ebx
jmp 0x1001af29
cmp dword [esp + 0x3c], 0
jbe 0x1001af1b
mov ebx, dword [esp + 0x38]
mov ecx, ebp
sub ecx, edi
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x1001a9b3
push edi
mov ecx, ebx
call fcn.1001a8a0
inc edi
add esp, 4
add edi, ebx
jmp 0x1001af29
cmp edi, ebp
je 0x1001a9b3
add dl, 0x30
mov byte [edi], dl
inc edi
test esi, esi
je 0x1001af6d
mov edx, dword [esp + 0x54]
mov eax, edi
cmp edi, edx
je 0x1001af51
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x1001af4d
cmp cl, 0x39
jne 0x1001af5f
mov byte [eax], 0x30
mov esi, 1
cmp eax, edx
jne 0x1001af37
mov byte [eax], 0x31
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
jmp 0x1001af71
cmp esi, 1
je 0x1001af69
test cl, 1
je 0x1001af6d
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 0x1001a9b3
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 0x1001afe6
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 0x100212ad
xorps xmm3, xmm3
mov eax, 6
cvtss2sd xmm3, xmm2
mov dword [esp + 4], eax
jmp 0x1001a970
cmp eax, 0x3b9aca00
jge 0x100212c4
xorps xmm3, xmm3
cvtss2sd xmm3, xmm2
mov dword [esp + 4], eax
jmp 0x1001a970
mov ecx, 0x84
mov eax, edx
mov edx, ecx
ret