Function at 0x10045f70
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov esi, esp
mov dword [esi + 0xb8], ebp
mov ebx, ecx
mov edi, dword [ebp + 8]
mov dword [esi + 0xbc], esp
mov dword [esi + 0xc8], 0xffffffff
mov dword [esi + 0xc4], 0x100481c0
mov eax, dword fs:[0]
mov dword [esi + 0xc0], eax
lea eax, [esi + 0xc0]
mov dword fs:[0], eax
mov ecx, dword [0x102a2300]
lea eax, [esi + 0x30]
push dword [0x102a24f8]
push edi
push eax
call fcn.10023be0
mov ecx, ebx
movsd xmm0, qword [esi + 0x30]
addps xmm0, xmmword [0x10149390]
mov eax, dword [ebx + 4]
cmp dword [ebx], eax
je 0x10046003
movss xmm2, dword [eax - 0x20]
addss xmm2, dword [0x10149270]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
subss xmm2, xmm1
jmp 0x10046026
mov edx, dword [0x102a2300]
movss xmm1, dword [edx + 4]
movss xmm2, dword [0x101493a0]
addss xmm2, xmm1
mulss xmm2, dword [0x1014776c]
addss xmm2, xmm1
movlps qword [esi + 0x30], xmm0
movss dword [esi + 0x38], xmm2
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov dword [esi + 0x3c], edx
xorps xmm0, xmm0
movups xmmword [esi + 0x40], xmm0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov ebx, dword [edi + 0x10]
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x10046059
mov edx, dword [edi]
test ebx, ebx
js 0x10046661
lea edi, [esi + 0x40]
cmp ebx, 0xf
movss dword [esi + 0xc], xmm2
ja 0x100460cb
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], 0xf
movups xmm0, xmmword [edx]
movups xmmword [edi], xmm0
cmp eax, dword [ecx + 8]
je 0x1004613c
movsd xmm0, qword [esi + 0x30]
movsd qword [eax], xmm0
mov edx, dword [esi + 0x38]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x3c]
mov dword [eax + 0xc], edx
xorps xmm0, xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
movups xmm0, xmmword [edi]
movups xmmword [eax + 0x10], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x20], xmm0
add dword [ecx + 4], 0x28
jmp 0x10046192
mov dword [esi + 8], edx
mov dword [esi + 0x60], ecx
mov eax, ebx
or eax, 0xf
cmp eax, 0x17
mov edi, 0x16
cmovae edi, eax
cmp edi, 0xfff
jb 0x10046102
lea eax, [edi + 0x24]
push eax
call fcn.100e9fad
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1004610e
lea eax, [edi + 1]
push eax
call fcn.100e9fad
add esp, 4
mov dword [esi + 0x40], eax
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], edi
inc ebx
push ebx
push dword [esi + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx + 4]
movss xmm2, dword [esi + 0xc]
lea edi, [esi + 0x40]
cmp eax, dword [ecx + 8]
jne 0x10046087
mov dword [esi + 0xc8], 0
lea edx, [esi + 0x30]
push edx
push eax
call fcn.10047920
mov eax, dword [esi + 0x54]
cmp eax, 0x10
movss xmm2, dword [esi + 0xc]
jb 0x10046192
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10046183
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1004665b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
movss xmm2, dword [esi + 0xc]
mov ebx, dword [0x102a23ac]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
sub esp, 0xc
movsd qword [esi + 0x60], xmm0
movsd qword [esp + 4], xmm0
mov dword [esp], 0x1016cb8d
call fcn.10047cb0
add esp, 0xc
xorps xmm0, xmm0
movaps xmmword [esi + 0x10], xmm0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
test eax, eax
js 0x10046666
mov edi, eax
cmp eax, 0xf
mov dword [esi + 0x98], ebx
ja 0x10046207
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], 0xf
lea eax, [esi + 0x10]
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ebx, [esi + edi]
add ebx, 0x10
jmp 0x1004626b
mov eax, edi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
mov dword [esi + 0xc8], 0xffffffff
cmp ecx, 0xfff
mov dword [esi + 8], ecx
jb 0x10046243
lea eax, [ecx + 0x24]
push eax
call fcn.100e9fad
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10046251
lea eax, [ecx + 1]
push eax
call fcn.100e9fad
add esp, 4
mov ebx, eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x20], edi
mov eax, dword [esi + 8]
mov dword [esi + 0x24], eax
push edi
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add ebx, edi
mov byte [ebx], 0
inc edi
cmp dword [esi + 0x24], 0x10
jb 0x1004627a
mov eax, dword [esi + 0x10]
jmp 0x1004627d
lea eax, [esi + 0x10]
sub esp, 0x14
movsd xmm0, qword [esi + 0x60]
movsd qword [esp + 0xc], xmm0
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], 0x1016cb8d
call fcn.10047d10
add esp, 0x14
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x10]
cmp ebx, 0x7ffffff4
jge 0x10046675
mov ecx, dword [eax]
mov dword [esi + 0x60], ecx
mov eax, dword [eax + 0x14]
xorps xmm0, xmm0
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x84], 0
mov dword [esi + 0x80], 0
lea ecx, [ebx + 0xc]
cmp ecx, 0x10
mov dword [esi + 8], ecx
jb 0x1004633d
mov dword [esi + 0x6c], eax
mov edi, Ordinal_2
cmp ebx, 0xfffffff4
mov dword [esi + 0x94], ebx
jl 0x10046317
mov eax, ecx
or eax, 0xf
cmp eax, 0x17
mov edi, 0x16
cmovae edi, eax
mov dword [esi + 0xc8], 1
cmp edi, 0xfff
jb 0x10046347
mov dword [esi + 0x68], edi
lea eax, [edi + 0x24]
mov dword [esi + 0xc8], 1
push eax
call fcn.100e9fad
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10046358
lea edi, [esi + 0x70]
mov edx, 0xf
jmp 0x10046367
mov dword [esi + 0x68], edi
lea eax, [edi + 1]
push eax
call fcn.100e9fad
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x70], edi
mov ebx, dword [esi + 0x94]
mov edx, dword [esi + 0x68]
cmp eax, 0x10
mov ecx, dword [ebp + 8]
cmovae ecx, dword [esi + 0x60]
mov eax, dword [esi + 8]
mov dword [esi + 0x80], eax
mov dword [esi + 0x84], edx
mov dword [edi + 8], 0x203a7478
mov dword [edi + 4], 0x65742064
mov dword [edi], 0x65646441
lea eax, [edi + 0xc]
push ebx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx + 0xc], 0
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x84]
mov eax, edx
sub eax, ecx
cmp eax, 0x17
jae 0x100463f2
mov dword [esi + 0xc8], 2
sub esp, 0x10
movzx eax, byte [esi + 0x30]
mov byte [esp + 4], al
mov dword [esp + 0xc], 0x17
mov dword [esp + 8], str._with_vertical_offset:
mov dword [esp], 0x17
lea ecx, [esi + 0x70]
call fcn.10019310
jmp 0x10046430
lea eax, [ecx + 0x17]
mov dword [esi + 0x80], eax
lea eax, [esi + 0x70]
mov edi, eax
cmp edx, 0x10
jb 0x10046408
mov edi, dword [esi + 0x70]
movsd xmm0, qword [0x1016eb0d]
movsd qword [edi + ecx + 0xf], xmm0
movups xmm0, xmmword [str._with_vertical_offset:]
movups xmmword [edi + ecx], xmm0
mov byte [edi + ecx + 0x17], 0
mov dword [esi + 0xc8], 3
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0xb0], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0xa0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov dword [esi + 0xc8], 3
sub esp, 0xc
movzx eax, byte [esi + 0x2c]
mov byte [esp], al
lea eax, [esi + 0x10]
mov dword [esp + 8], eax
lea eax, [esi + 0xa0]
mov dword [esp + 4], eax
lea ecx, [esi + 0x30]
call fcn.10019470
cmp dword [esi + 0x44], 0x10
mov ecx, dword [esi + 0x98]
lea edx, [esi + 0x30]
jb 0x10046497
mov edx, dword [esi + 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x64]
mov dword [esi + 0xc8], 4
push edx
push 0x101493a8
push ecx
call eax
add esp, 0xc
mov eax, dword [esi + 0x44]
cmp eax, 0x10
jb 0x100464ea
mov ecx, dword [esi + 0x30]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100464e0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1004665b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0xf
mov byte [esi + 0x30], 0
mov eax, dword [esi + 0xb4]
cmp eax, 0x10
jb 0x1004653a
mov ecx, dword [esi + 0xa0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10046530
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1004665b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 0xf
mov byte [esi + 0xa0], 0
mov eax, dword [esi + 0x84]
cmp eax, 0x10
jb 0x10046590
mov ecx, dword [esi + 0x70]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10046586
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1004665b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov eax, dword [esi + 0x24]
cmp eax, 0x10
jb 0x100465c8
mov ecx, dword [esi + 0x10]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100465be
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1004665b
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov ecx, 0xf59c70f7
mov eax, 0x3ccf54ef
mov edx, 0x3ccf54ef
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], ecx
mov ecx, 0xe4cff5a6
mov edx, 0xe07099fa
mov edi, 0xf59c70fd
mov dword [esi + 0x34], eax
mov dword [esi + 0x30], edi
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
lea eax, [esi + 0x30]
xor ecx, ecx
mov ecx, dword [0x102a23ac]
movaps xmm0, xmmword [esi + 0x10]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x10], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x64]
mov dword [esi + 0xc8], 0xffffffff
lea edx, [esi + 0x10]
push edx
push 0x101493a8
push ecx
call eax
add esp, 0xc
mov eax, dword [esi + 0xc0]
mov dword fs:[0], eax
movss xmm0, dword [esi + 0xc]
movss dword [esi + 0x9c], xmm0
fld dword [esi + 0x9c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.10018f00
mov dword [esi + 0xc8], 0xffffffff
call fcn.10018f00
mov dword [esi + 0xc8], 1
call fcn.10018f00
nop word cs:[eax + eax]
push ebp
sub esp, 0x14
lea esi, [ebp - 0xcc]
mov ebp, dword [esi + 0xb8]
lea ecx, [esi + 0x30]
call fcn.10046730
add esp, 0x14
pop ebp
ret