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

Disassembly:
sub esp, 0x20
movsd xmm0, qword [esp + 0x30]
push ebx
movsd qword [esp + 0x34], xmm0
mov ecx, dword [esp + 0x34]
mov eax, ecx
mov ebx, dword [esp + 0x38]
or eax, ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x34]
push edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], ecx
jne 0x1003775a
mov edi, dword [esp + 0x48]
xor ecx, ecx
test edi, edi
mov eax, ebp
setne cl
sub eax, esi
inc ecx
add ecx, edi
cmp eax, ecx
jl 0x10037b59
mov byte [esi], 0x30
inc esi
test edi, edi
je 0x10037745
mov byte [esi], 0x2e
inc esi
push edi
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x34]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], 0
pop ebx
add esp, 0x20
ret
mov eax, ebx
shr ebx, 0x14
and eax, 0xfffff
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x10037779
mov dword [esp + 0x40], 0xfffffbce
jmp 0x100378ae
add ebx, 0xfffffbcd
mov dword [esp + 0x10], ecx
or eax, 0x100000
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], eax
mov byte [esp + 0x38], 0
cmp ebx, 0xffffffcc
jl 0x100378ae
test ebx, ebx
jns 0x100377b6
xor edx, edx
mov ecx, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
lea edi, [edx + 0x78]
jmp 0x100377f4
lea eax, [ebx + 0xf]
shr eax, 4
imul ecx, eax, 0x134410
mov edi, eax
mov dword [esp + 0x1c], eax
mov eax, 0x38e38e39
shl edi, 4
add edi, 0x78
shr ecx, 0x12
add ecx, 0x19
mul ecx
mov ecx, edx
shr ecx, 1
sub ecx, 1
mov dword [esp + 0x18], ecx
js 0x100378ae
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
sub edi, ebx
lea ebx, [edi + 8]
mov edi, eax
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
shld edi, ebx, 8
shl ebx, 8
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
movzx eax, word [edx*2 + 0x100729c8]
push dword [esp + 0x20]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x100761c0]
push eax
push edi
push ebx
call fcn.100421c0
mov edi, eax
add esp, 0x10
mov al, byte [esp + 0x38]
test al, al
je 0x1003785f
mov ecx, ebp
sub ecx, esi
cmp ecx, 9
jl 0x10037b59
push esi
push edi
call fcn.10037660
mov al, byte [esp + 0x40]
add esp, 8
add esi, 9
jmp 0x10037891
test edi, edi
je 0x10037891
push edi
call fcn.10041480
mov ecx, ebp
mov ebx, eax
sub ecx, esi
add esp, 4
cmp ecx, ebx
jl 0x10037b59
push esi
push edi
push ebx
call fcn.100375a0
add esp, 0xc
mov al, 1
add esi, ebx
mov byte [esp + 0x38], al
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub ecx, 1
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
jns 0x10037812
test al, al
jne 0x100378ba
cmp esi, ebp
je 0x10037b59
mov byte [esi], 0x30
inc esi
mov edi, dword [esp + 0x48]
test edi, edi
je 0x100378ce
cmp esi, ebp
je 0x10037b59
mov byte [esi], 0x2e
inc esi
mov eax, dword [esp + 0x40]
test eax, eax
jns 0x10037b44
cdq
xor ebx, ebx
and edx, 0xf
add eax, edx
sar eax, 4
neg eax
mov dword [esp + 0x1c], eax
mov eax, 0x38e38e39
mul edi
mov eax, edx
mov edx, dword [esp + 0x1c]
shr eax, 1
mov dword [esp + 0x28], eax
lea ecx, [eax + 1]
movzx eax, byte [edx + 0x10072ad8]
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x10037b44
test eax, eax
je 0x1003794a
mov ebx, eax
mov eax, ebp
sub eax, esi
lea ecx, [ebx + ebx*8]
cmp eax, ecx
jl 0x10037b59
lea eax, [esp + 0x38]
mov byte [esp + 0x38], 0x30
push eax
push ecx
push esi
call fcn.10039040
mov edx, dword [esp + 0x28]
lea eax, [ebx + ebx*8]
mov ecx, dword [esp + 0x24]
add esp, 0xc
add esi, eax
cmp ebx, ecx
jae 0x10037745
mov eax, ebp
sub eax, esi
mov dword [esp + 0x38], eax
nop word [eax + eax]
movzx eax, byte [edx + 0x10072ad8]
movzx ecx, word [edx*2 + 0x10072a48]
sub ecx, eax
movzx eax, word [edx*2 + 0x10072a4a]
add ecx, ebx
cmp ecx, eax
jae 0x10037b3f
mov eax, 8
sub eax, edx
shl eax, 4
sub eax, dword [esp + 0x40]
push eax
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x14]
lea eax, [eax*8 + 0x1007d480]
push eax
mov eax, dword [esp + 0x1c]
shld eax, ecx, 8
shl ecx, 8
push eax
push ecx
call fcn.100421c0
add esp, 0x10
mov ecx, eax
cmp ebx, dword [esp + 0x28]
jae 0x100379ff
cmp dword [esp + 0x38], 9
jl 0x10037b59
push esi
push ecx
call fcn.10037660
sub dword [esp + 0x40], 9
inc ebx
mov edx, dword [esp + 0x24]
add esp, 8
add esi, 9
cmp ebx, dword [esp + 0x18]
jb 0x10037960
mov eax, dword [esp + 0x34]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], 0
pop ebx
add esp, 0x20
ret
lea eax, [ebx + ebx*8]
mov edx, edi
sub edx, eax
xor ebx, ebx
mov eax, 9
mov dword [esp + 0x28], edx
sub eax, edx
mov dword [esp + 0x38], eax
je 0x10037a91
mov ebp, eax
nop
mov eax, 0xcccccccd
mov ebx, ecx
mul ecx
shr edx, 3
mov ecx, edx
lea eax, [edx + edx*4]
add eax, eax
sub ebx, eax
sub ebp, 1
jne 0x10037a20
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
cmp ebx, 5
jne 0x10037a91
mov edx, dword [esp + 0x40]
not edx
sub edx, edi
test edx, edx
jle 0x10037a8a
cmp edx, 0x3c
jge 0x10037a83
xor ecx, ecx
xor eax, eax
bts ecx, edx
cmp edx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp edx, 0x40
cmovae eax, ecx
add ecx, 0xffffffff
adc eax, 0xffffffff
and ecx, dword [esp + 0x10]
and eax, dword [esp + 0x14]
or ecx, eax
mov ecx, dword [esp + 0x38]
je 0x10037a8a
mov edi, 1
jmp 0x10037a9c
mov edi, 2
jmp 0x10037a9c
mov eax, 5
cmp eax, ebx
sbb edi, edi
neg edi
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x10037abd
mov eax, ebp
sub eax, esi
cmp eax, ebx
jl 0x10037b59
push esi
push ecx
push ebx
call fcn.10037520
add esp, 0xc
add esi, ebx
test edi, edi
je 0x10037745
mov ebx, dword [esp + 0x2c]
mov eax, esi
mov edx, ebp
cmp esi, ebx
je 0x10037aef
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
jne 0x10037ade
mov edx, eax
jmp 0x10037aeb
cmp cl, 0x39
jne 0x10037b18
mov byte [eax], 0x30
mov edi, 1
cmp eax, ebx
jne 0x10037ad1
mov byte [eax], 0x31
cmp edx, ebp
je 0x10037afb
mov word [edx], 0x2e30
cmp esi, ebp
je 0x10037b59
mov eax, dword [esp + 0x34]
mov byte [esi], 0x30
inc esi
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], 0
pop ebx
add esp, 0x20
ret
cmp edi, 1
je 0x10037b26
test cl, 1
je 0x10037745
inc cl
mov byte [eax], cl
mov eax, dword [esp + 0x34]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], 0
pop ebx
add esp, 0x20
ret
lea eax, [ebx + ebx*8]
sub edi, eax
mov eax, ebp
sub eax, esi
cmp eax, edi
jl 0x10037b59
test edi, edi
je 0x10037743
jmp 0x10037737
mov eax, dword [esp + 0x34]
pop edi
pop esi
mov dword [eax], ebp
pop ebp
mov dword [eax + 4], 0x84
pop ebx
add esp, 0x20
ret