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

Disassembly:
sub esp, 0x34
movsd xmm0, qword [esp + 0x40]
push ebx
push ebp
mov ebp, dword [esp + 0x40]
push esi
mov esi, edx
movsd qword [esp + 0x4c], xmm0
mov ebx, dword [esp + 0x50]
mov edx, ecx
mov ecx, dword [esp + 0x4c]
mov eax, ecx
or eax, ebx
mov dword [esp + 0x28], edx
push edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], ecx
jne 0x1003d5e0
mov edi, dword [esp + 0x4c]
xor ecx, ecx
test edi, edi
mov eax, ebp
setne cl
sub eax, esi
inc ecx
add ecx, edi
cmp eax, ecx
jl 0x1003da1e
mov byte [esi], 0x30
inc esi
test edi, edi
je 0x1003d5cd
push edi
mov byte [esi], 0x2e
inc esi
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x38]
add esp, 0xc
add esi, edi
mov dword [edx], esi
mov eax, edx
mov dword [edx + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov eax, ebx
shr ebx, 0x14
and eax, 0xfffff
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x1003d5ff
mov dword [esp + 0x14], 0xfffffbce
jmp 0x1003d6f8
add ebx, 0xfffffbcd
mov dword [esp + 0x18], ecx
or eax, 0x100000
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x50], 0
cmp ebx, 0xffffffcc
jl 0x1003d6f8
test ebx, ebx
jns 0x1003d632
xor ecx, ecx
lea eax, [ecx + 0x78]
lea edi, [ecx + 1]
jmp 0x1003d670
lea ecx, [ebx + 0xf]
shr ecx, 4
mov eax, ecx
mov dword [esp + 0x30], ecx
imul ecx, ecx, 0x134410
shl eax, 4
add eax, 0x78
mov dword [esp + 0x34], eax
mov eax, 0x38e38e39
shr ecx, 0x12
add ecx, 0x19
mul ecx
mov edi, edx
shr edi, 1
sub edi, 1
js 0x1003d6f8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
sub eax, ebx
mov ebx, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x34], eax
movzx eax, word [ecx*2 + 0x101a7848]
shld ebx, edx, 8
shl edx, 8
add eax, edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], edx
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x1012fd30]
mov dword [esp + 0x28], eax
push ebx
push edx
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.10037ba0
add esp, 8
mov ecx, eax
cmp byte [esp + 0x50], 0
je 0x1003d871
mov eax, ebp
sub eax, esi
cmp eax, 9
jl 0x1003da1e
mov edx, esi
call fcn.1003b300
add esi, 9
mov cl, byte [esp + 0x50]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
sub eax, 0x18
sub edi, 1
mov dword [esp + 0x28], eax
jns 0x1003d6a8
test cl, cl
jne 0x1003d704
cmp esi, ebp
je 0x1003da1e
mov byte [esi], 0x30
inc esi
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x1003d718
cmp esi, ebp
je 0x1003da1e
mov byte [esi], 0x2e
inc esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
jns 0x1003d9ef
mov eax, ecx
xor ebx, ebx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
neg eax
mov dword [esp + 0x50], eax
mov eax, 0x38e38e39
mul edi
mov eax, edx
mov edx, dword [esp + 0x50]
shr eax, 1
mov dword [esp + 0x38], eax
inc eax
mov dword [esp + 0x34], eax
movzx edx, byte [edx + 0x101a9b40]
mov dword [esp + 0x30], edx
cmp eax, edx
jbe 0x1003d9ef
test edx, edx
je 0x1003d798
mov ebx, edx
mov eax, ebp
sub eax, esi
lea edx, [ebx + ebx*8]
cmp eax, edx
jl 0x1003da1e
test edx, edx
je 0x1003d78e
push edx
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x20]
lea edx, [ebx + ebx*8]
add esp, 0xc
mov eax, dword [esp + 0x34]
add esi, edx
mov edx, dword [esp + 0x30]
cmp ebx, eax
jae 0x1003da09
mov eax, dword [esp + 0x50]
movzx eax, word [eax*2 + 0x101a78c8]
sub eax, edx
lea edx, [eax + ebx]
mov eax, ebp
sub eax, esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
lea eax, [edx + edx*2]
lea eax, [eax*8 + 0x10136ff0]
mov dword [esp + 0x28], eax
nop dword [eax + eax]
mov ebp, dword [esp + 0x50]
movzx eax, word [ebp*2 + 0x101a78ca]
mov ebp, dword [esp + 0x48]
cmp edx, eax
jae 0x1003d9ea
mov eax, dword [esp + 0x1c]
mov edx, 8
sub edx, dword [esp + 0x50]
shl edx, 4
sub edx, ecx
mov ecx, dword [esp + 0x18]
shld eax, ecx, 8
shl ecx, 8
push eax
push ecx
mov ecx, dword [esp + 0x30]
call fcn.10037ba0
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
cmp ebx, dword [esp + 0x38]
jae 0x1003d8aa
cmp dword [esp + 0x24], 9
jl 0x1003da1e
mov edx, esi
mov ecx, eax
call fcn.1003b300
mov edx, dword [esp + 0x30]
inc ebx
sub dword [esp + 0x24], 9
inc edx
add dword [esp + 0x28], 0x18
add esi, 9
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edx
cmp ebx, dword [esp + 0x34]
jb 0x1003d7d0
mov eax, dword [esp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
test ecx, ecx
je 0x1003d6dc
call fcn.10037a70
mov ebx, eax
mov eax, ebp
sub eax, esi
cmp eax, ebx
jl 0x1003da1e
mov edx, ecx
mov ecx, ebx
push esi
call fcn.1003e7d0
add esp, 4
mov cl, 1
add esi, ebx
mov byte [esp + 0x50], cl
mov ebx, dword [esp + 0x30]
jmp 0x1003d6e0
lea eax, [ebx + ebx*8]
xor ecx, ecx
mov ebx, edi
sub ebx, eax
mov eax, 9
sub eax, ebx
mov dword [esp + 0x50], eax
je 0x1003d93d
mov ebp, eax
nop word [eax + eax]
mov ecx, dword [esp + 0x20]
mov eax, 0xcccccccd
mul edx
shr edx, 3
mov dword [esp + 0x20], edx
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
sub ebp, 1
jne 0x1003d8d0
mov ebp, dword [esp + 0x48]
cmp ecx, 5
jne 0x1003d93d
mov edx, dword [esp + 0x14]
not edx
sub edx, edi
test edx, edx
jle 0x1003d936
cmp edx, 0x3c
jge 0x1003d92f
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 + 0x18]
and eax, dword [esp + 0x1c]
or ecx, eax
je 0x1003d936
mov edi, 1
jmp 0x1003d948
mov edi, 2
jmp 0x1003d948
mov eax, 5
cmp eax, ecx
sbb edi, edi
neg edi
test ebx, ebx
je 0x1003d969
mov eax, ebp
sub eax, esi
cmp eax, ebx
jl 0x1003da1e
mov edx, dword [esp + 0x20]
mov ecx, ebx
push esi
call fcn.1003b380
add esp, 4
add esi, ebx
test edi, edi
je 0x1003da09
mov ebx, dword [esp + 0x3c]
mov eax, esi
mov edx, ebp
cmp esi, ebx
je 0x1003d99e
nop dword [eax]
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
jne 0x1003d98d
mov edx, eax
jmp 0x1003d99a
cmp cl, 0x39
jne 0x1003d9c7
mov byte [eax], 0x30
mov edi, 1
cmp eax, ebx
jne 0x1003d980
mov byte [eax], 0x31
cmp edx, ebp
je 0x1003d9aa
mov word [edx], 0x2e30
cmp esi, ebp
je 0x1003da1e
mov eax, dword [esp + 0x2c]
mov byte [esi], 0x30
inc esi
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp edi, 1
je 0x1003d9d1
test cl, 1
je 0x1003da09
inc cl
mov byte [eax], cl
mov eax, dword [esp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
lea eax, [ebx + ebx*8]
sub edi, eax
mov eax, ebp
sub eax, esi
cmp eax, edi
jl 0x1003da1e
test edi, edi
je 0x1003da07
push edi
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov dword [eax], ebp
pop ebp
mov dword [eax + 4], 0x84
pop ebx
add esp, 0x34
ret