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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1d4
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x1d0], eax
mov ebx, dword [0x1017f770]
mov eax, dword [ebx + 0x1b98]
mov byte [eax + 0x8c], 1
mov ebp, dword [ebx + 0x1b98]
cmp byte [ebp + 0x8f], 0
je 0x100506b7
xor ebx, ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.100d7fe0
mov eax, ebx
add esp, 0x1d4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x1fc]
test eax, 0x8000
sete cl
mov dword [esp + 0xdc], ecx
and eax, 0x4000000
mov dword [esp + 0x18], eax
je 0x100506dd
call fcn.10031510
mov esi, dword [esp + 0x1f8]
mov ecx, ebp
push 0
mov edi, dword [esp + 0x1ec]
push edi
call fcn.1001f8d0
mov dword [esp + 4], eax
lea eax, [esp + 0x1c8]
push 0xbf800000
push 1
push 0
push edi
push eax
call fcn.1001eab0
add esp, 0x14
cmp dword [esp + 0x18], 0
je 0x1005072c
vmovss xmm0, dword [ebx + 0x1934]
vmulss xmm0, xmm0, dword [0x10129610]
jmp 0x10050735
vmovss xmm0, dword [esp + 0x1cc]
vmovss xmm1, dword [ebx + 0x1558]
vfmadd132ss xmm1, xmm0, dword [0x1012984c]
vmovss dword [esp], xmm1
call fcn.10031360
vmovss xmm0, dword [esi]
vmovss xmm1, dword [esi + 4]
sub esp, 0x14
vmovss xmm2, dword [esp + 0x14]
vmovss dword [esp + 0x10], xmm2
fstp dword [esp + 0xc]
vmovss dword [esp + 8], xmm1
vmovss dword [esp + 4], xmm0
lea eax, [esp + 0x1d4]
mov dword [esp], eax
call fcn.100313f0
add esp, 0x14
vmovsd xmm0, qword [esp + 0x1c0]
vmovups xmmword [esp + 0x7c], xmm0
vmovss xmm1, dword [esp + 0x1c8]
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
jbe 0x100507b4
vaddss xmm0, xmm1, dword [ebx + 0x156c]
vmovups xmm2, xmmword [esp + 0x7c]
vaddss xmm0, xmm2, xmm0
mov esi, dword [ebp + 0xd0]
mov edi, dword [ebp + 0xd4]
vmovsd xmm1, qword [ebp + 0xd0]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b4], edi
vaddps xmm1, xmm2, xmm1
vmovlps qword [esp + 0x1b8], xmm1
vmovd xmm1, edi
vmovshdup xmm2, xmm2
vmovups xmmword [esp + 0x130], xmm2
vaddss xmm1, xmm2, xmm1
vmovd xmm2, esi
vaddss xmm0, xmm0, xmm2
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1a0], esi
vmovss dword [esp + 0x1a8], xmm0
vmovss dword [esp + 0x1ac], xmm1
mov dword [esp], ebx
vmovss xmm0, dword [ebx + 0x1558]
sub esp, 8
vmovss dword [esp + 4], xmm0
lea ebx, [esp + 0x1a8]
mov dword [esp], ebx
call fcn.100310f0
add esp, 8
vmovups xmm0, xmmword [esp + 0x7c]
cmp dword [esp + 0x18], 0
vmovups xmmword [esp + 0x30], xmm0
je 0x100509c6
lea eax, [esp + 0x1b0]
push 0x100
push eax
push dword [esp + 0xc]
push ebx
call fcn.1002ed20
add esp, 0x10
test al, al
je 0x10050ac1
mov eax, ebp
mov ebp, dword [esp]
mov ecx, dword [ebp + 0x1c40]
mov dword [esp + 0x8c], ecx
mov dword [eax + 0xd4], edi
mov dword [esp + 0x60], eax
mov dword [eax + 0xd0], esi
lea eax, [ebp + 0x1650]
push eax
push 3
call fcn.1001dcc0
add esp, 8
vmovss xmm0, dword [ebp + 0x155c]
sub esp, 8
vmovss dword [esp + 4], xmm0
mov dword [esp], 7
call fcn.1001de60
add esp, 8
vmovss xmm0, dword [ebp + 0x1560]
sub esp, 8
vmovss dword [esp + 4], xmm0
mov dword [esp], 8
call fcn.1001de60
add esp, 8
vmovsd xmm0, qword [esp + 0x1b0]
vmovsd xmm1, qword [esp + 0x1b8]
vsubps xmm0, xmm1, xmm0
vmovlps qword [esp + 0x170], xmm0
lea eax, [esp + 0x170]
push 4
push 1
push eax
mov esi, dword [esp + 0x10]
push esi
push dword [esp + 0x1f8]
call fcn.1002e610
add esp, 0x14
mov ebx, eax
push 2
call fcn.1001e0e0
add esp, 4
push 1
call fcn.1001de00
add esp, 4
test bl, bl
je 0x10050abc
mov edx, dword [ebp + 0x1b98]
movzx eax, byte [edx + 0x11c]
mov ecx, 1
shlx eax, ecx, eax
or word [edx + 0x122], ax
vmovss xmm0, dword [ebp + 0x1554]
vaddss xmm0, xmm0, dword [edx + 0xd0]
vmovss dword [edx + 0xd0], xmm0
vmovss xmm0, dword [ebp + 0x1558]
vaddss xmm0, xmm0, dword [edx + 0xd4]
vmovss dword [edx + 0xd4], xmm0
vmovups xmm0, xmmword [esp + 0x30]
vsubss xmm0, xmm0, dword [edx + 0x80]
vmovups xmmword [esp + 0x10c], xmm0
vmovups xmmword [esp + 0x30], xmm0
jmp 0x10050a19
test dword [esp + 0x1fc], 0x10000000
mov esi, dword [esp + 4]
jne 0x100509f6
lea eax, [esp + 0x1b0]
push 0x100
push eax
push esi
push ebx
call fcn.1002ed20
add esp, 0x10
test al, al
je 0x1005069a
mov edx, ebp
mov ebp, dword [esp]
mov eax, dword [ebp + 0x1c40]
mov dword [esp + 0x8c], eax
vxorps xmm0, xmm0, xmm0
vmovups xmmword [esp + 0x10c], xmm0
mov dword [esp + 0x60], edx
mov dword [esp + 0x40], edx
lea eax, [esp + 0x1b0]
push esi
push eax
call fcn.10020530
add esp, 8
mov byte [esp + 8], al
test al, al
je 0x10050a40
mov dword [ebp + 0x1e88], 1
mov edi, dword [0x1017f770]
mov esi, dword [edi + 0x1fac]
add edi, 0x1fac
mov dword [esp + 0xc], 0
mov eax, dword [esp + 4]
cmp esi, eax
mov ecx, 0
cmove ecx, edi
mov dword [esp + 0x1c], ecx
mov ebx, dword [ebp + 0x1bd0]
cmp ebx, eax
je 0x10050aa2
mov al, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
cmp dword [ebp + 0x1d58], eax
je 0x10050aa2
mov eax, dword [esp + 4]
cmp dword [ebp + 0x1d4c], eax
jne 0x10050acb
cmp dword [ebp + 0x1d78], 2
sete al
mov dword [esp + 0xc], eax
cmp byte [esp + 8], 0
je 0x10050ada
mov eax, dword [esp]
cmp byte [eax + 0x3e0], 0
setne al
mov dword [esp + 0x6c], eax
jmp 0x10050ae2
call fcn.1002e9c0
call fcn.10030df0
jmp 0x1005069a
mov dword [esp + 0xc], 0
cmp byte [esp + 8], 0
jne 0x10050aa9
mov dword [esp + 0x6c], 0
xor edx, edx
cmp dword [esp + 0x18], 0
je 0x10050b08
mov ecx, 0
cmp esi, dword [esp + 4]
jne 0x10050b0a
test ebx, ebx
je 0x10050b1c
mov dword [esp + 0x2c], 0
mov ebp, dword [esp + 0x40]
jmp 0x10050b4c
xor ecx, ecx
cmp dword [esp + 0x18], 0
je 0x10050b6a
mov eax, dword [esp + 0x40]
vmovd xmm0, dword [eax + 0x5c]
jmp 0x10050b72
mov ebx, dword [esp]
mov eax, dword [ebx + 0x1c0c]
mov dword [esp + 0x2c], eax
mov ebp, dword [esp + 0x40]
mov ecx, ebp
push 0
push str.SCROLLY
call fcn.1001fd00
cmp dword [esp + 0x2c], eax
sete al
mov dword [esp + 0x2c], eax
mov ebx, dword [ebx + 0x1bd0]
mov ecx, ebp
push 0
push str.SCROLLY
call fcn.1001fd00
cmp ebx, eax
sete cl
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
jne 0x10050b11
vmovd xmm0, dword [0x101296d0]
vmovdqu xmmword [esp + 0xcc], xmm0
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
cmp esi, eax
mov esi, eax
mov dword [esp + 0x14], ecx
jne 0x10050c00
mov eax, dword [esp + 0x8c]
shr eax, 8
and eax, 1
cmp dword [esp + 0x18], 0
mov ebx, ecx
sete cl
mov ebp, esi
mov esi, ebx
mov ebx, dword [esp + 0x1c]
mov ch, byte [ebx + 0x53]
mov byte [esp + 0xec], cl
cmp ch, cl
setne bl
or dl, byte [esp + 0x6c]
or dl, byte [esp + 0xc]
or dl, al
mov dword [esp + 0x2c], edx
mov eax, esi
mov esi, ebp
or dl, al
mov edx, ebx
jne 0x10050c36
mov dl, 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x2c], 0
mov ebx, 0
cmp ch, byte [esp + 0xec]
je 0x10051061
jmp 0x10050c65
mov eax, dword [esp + 0x8c]
shr eax, 8
and eax, 1
or dl, byte [esp + 0x6c]
or dl, byte [esp + 0xc]
or dl, al
mov dword [esp + 0x2c], edx
mov eax, edx
or al, cl
xor edx, edx
mov ebx, 0
mov dword [esp + 0x50], 0
cmp al, 1
jne 0x10051049
mov al, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp]
cmp dword [eax + 0x1bd0], esi
jne 0x10050c65
test dl, dl
jne 0x10050c65
xor ebx, ebx
mov eax, dword [esp]
mov edx, dword [esp + 0x2c]
cmp dword [eax + 0x1bd0], esi
jne 0x10050f98
jmp 0x10051045
mov dword [esp + 0x1c], edx
mov esi, dword [esp]
mov dword [esi + 0x2e14], 0xbe99999a
push dword [esp + 0x1f0]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea edi, [eax + 1]
mov ecx, dword [esi + 0x1fd4]
cmp ecx, eax
jg 0x10050cf3
test ecx, ecx
je 0x10050ca3
mov ebx, ecx
shr ebx, 0x1f
add ebx, ecx
sar ebx, 1
add ebx, ecx
jmp 0x10050ca8
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp ecx, ebx
mov esi, dword [esp]
jge 0x10050cf3
push ebx
call fcn.1001ca90
add esp, 4
mov ebp, eax
mov eax, dword [esi + 0x1fd8]
test eax, eax
je 0x10050ce7
push dword [esi + 0x1fd0]
push eax
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esi + 0x1fd8]
call fcn.1001cac0
add esp, 4
mov dword [esi + 0x1fd8], ebp
mov dword [esi + 0x1fd4], ebx
mov dword [esi + 0x1fd0], edi
push edi
push dword [esp + 0x1f4]
push dword [esi + 0x1fd8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x170], 0
mov ecx, dword [esp + 0x1f4]
lea edi, [ecx + 1]
mov eax, dword [esi + 0x1fbc]
cmp eax, ecx
jg 0x10050d9c
test eax, eax
je 0x10050d3f
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x10050d44
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp eax, ebx
mov esi, dword [esp]
jge 0x10050d9c
lea eax, [ebx + ebx]
push eax
call fcn.1001ca90
add esp, 4
mov ebp, eax
mov edx, dword [esi + 0x1fc0]
test edx, edx
je 0x10050d89
mov ecx, dword [esi + 0x1fb8]
add ecx, ecx
push ecx
push edx
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esi + 0x1fc0]
call fcn.1001cac0
add esp, 4
mov dword [esi + 0x1fc0], ebp
mov dword [esi + 0x1fbc], ebx
mov ecx, dword [esp + 0x1f4]
mov dword [esi + 0x1fb8], edi
cmp dword [esi + 0x1fc8], 0
jns 0x10050df6
push 0
call fcn.1001ca90
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x1fcc]
test eax, eax
je 0x10050ddf
push dword [esi + 0x1fc4]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esi + 0x1fcc]
call fcn.1001cac0
add esp, 4
mov dword [esi + 0x1fcc], edi
mov dword [esi + 0x1fc8], 0
mov ecx, dword [esp + 0x1f4]
mov dword [esi + 0x1fc4], 0
mov byte [esi + 0x1fdc], 0
lea eax, [esp + 0x170]
push eax
push 0
mov edi, dword [esp + 0x1f8]
push edi
push ecx
push dword [esi + 0x1fc0]
call fcn.1001cf60
add esp, 0x14
mov dword [esi + 0x1fb0], eax
mov ecx, dword [esp + 0x170]
sub ecx, edi
mov dword [esi + 0x1fb4], ecx
mov edx, dword [esp + 4]
cmp dword [esi + 0x1fac], edx
sete cl
mov ebx, dword [esp + 0x1c]
xor bl, 1
and bl, cl
mov edi, ebx
cmp bl, 1
jne 0x10050e8f
vmovq xmm0, qword [esi + 0x1fe8]
vmovd xmm1, eax
vpbroadcastd xmm1, xmm1
vpminsd xmm0, xmm0, xmm1
vmovq qword [esi + 0x1fe8], xmm0
mov ecx, dword [esi + 0x1ff0]
cmp ecx, eax
cmovl eax, ecx
mov dword [esi + 0x1ff0], eax
mov eax, dword [esp + 0x18]
jmp 0x10050f07
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi + 0x1fac], edx
mov dword [esi + 0x1fe4], 0
mov dword [esi + 0x2e06], 0x630000
vmovq xmm0, qword [0x101316e0]
vmovq qword [esi + 0x2e0c], xmm0
mov dword [esi + 0x1ff0], 0
vpxor xmm0, xmm0, xmm0
vmovq qword [esi + 0x1fe8], xmm0
mov byte [esi + 0x1ffe], 0
mov dword [esi + 0x2004], 0
mov word [esi + 0x1ffc], 0x100
sete byte [esi + 0x1fff]
mov byte [esi + 0x1ff4], 0
mov dword [esi + 0x1ff8], 0
mov ecx, dword [esp + 0x1fc]
mov edx, dword [esp + 0x2c]
test eax, eax
je 0x10050f1e
xor ebx, ebx
mov esi, dword [esp + 4]
jmp 0x10050f6d
mov ebx, ecx
shr bl, 4
and bl, 1
cmp byte [esp + 0xc], 0
je 0x10050f47
mov eax, edi
test al, al
mov esi, dword [esp + 4]
je 0x10050f43
mov eax, dword [esp]
test byte [eax + 0x1d5c], 4
jne 0x10050f4b
mov bl, 1
jmp 0x10050f4b
mov esi, dword [esp + 4]
test dword [esp + 0x8c], 0x100
jne 0x10050f6b
cmp byte [esp + 0x6c], 0
je 0x10050f6d
mov eax, dword [esp]
cmp byte [eax + 0xfc], 0
je 0x10050f6d
mov bl, 1
test ecx, 0x2000
je 0x10050f7f
mov eax, dword [esp]
mov byte [eax + 0x1ff4], 1
mov eax, dword [esp]
lea edi, [eax + 0x1fac]
mov dword [esp + 0x1c], edi
cmp dword [eax + 0x1bd0], esi
je 0x10051045
test dl, dl
je 0x10051045
mov edi, dword [esp + 0x60]
push edi
push esi
call fcn.10020210
add esp, 8
push edi
push esi
call fcn.10032a20
add esp, 8
push edi
call fcn.10021730
add esp, 4
mov edi, dword [esp + 0x1fc]
test edi, 0x4000080
mov eax, 3
mov ecx, 0xf
cmove ecx, eax
cmp dword [esp + 0x18], 0
vmovdqa xmm0, xmmword [0x10129830]
vpinsrd xmm0, xmm0, ecx, 0
mov esi, dword [esp]
vmovq xmm1, qword [esi + 0x1be4]
vpor xmm0, xmm1, xmm0
vmovq qword [esi + 0x1be4], xmm0
mov eax, dword [esi + 0x1bf4]
mov edx, 0x1e0
mov ecx, 0x180
cmovne ecx, edx
or ecx, dword [esi + 0x1bf0]
mov dword [esi + 0x1bf0], ecx
test edi, 0x440
je 0x1005103b
or ecx, 1
mov dword [esi + 0x1bf4], eax
mov dword [esi + 0x1bf0], ecx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 4]
jmp 0x10051049
mov edx, dword [esp + 0x1c]
mov eax, dword [esp]
mov eax, dword [eax + 0x1bd0]
test edx, edx
jne 0x1005106c
cmp eax, esi
jne 0x1005106c
call fcn.10020330
xor edi, edi
mov eax, dword [esp]
mov eax, dword [eax + 0x1bd0]
mov edx, edi
cmp eax, esi
mov ecx, dword [esp + 0x1fc]
jne 0x100510a4
mov eax, dword [esp]
cmp byte [eax + 0x3e0], 0
sete al
mov edi, ebx
mov ebx, dword [esp + 0x50]
or bl, al
mov dword [esp + 0x50], ebx
mov eax, ebx
mov ebx, edi
xor al, 1
mov dword [esp + 0xbc], eax
mov byte [esp + 0x2c], 1
jmp 0x100510c2
test edx, edx
setne al
and al, byte [esp + 0x14]
mov byte [esp + 0x2c], al
mov al, 1
mov dword [esp + 0x50], eax
mov dword [esp + 0xbc], 0
test edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], ebx
je 0x1005111f
mov eax, ecx
shr eax, 0xe
mov ecx, dword [edx + 0x40]
cmp ecx, dword [edx + 0x44]
setne cl
test bl, bl
setne bl
or bl, cl
movzx ecx, byte [esp + 0x2c]
and bl, cl
and al, cl
cmp al, 1
jne 0x10051126
mov ebp, ebx
mov dword [esp + 0x170], 0
mov ecx, dword [esp + 0x1f4]
lea edi, [ecx + 1]
mov eax, dword [edx + 0x10]
cmp eax, ecx
jg 0x10051186
test eax, eax
je 0x10051132
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x10051137
xor ebx, ebx
jmp 0x100511f7
mov ecx, dword [esp + 0x1fc]
jmp 0x100511f7
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp eax, ebx
jge 0x10051186
lea eax, [ebx + ebx]
push eax
call fcn.1001ca90
mov edx, dword [esp + 0x20]
add esp, 4
mov esi, eax
mov eax, dword [edx + 0x14]
test eax, eax
je 0x1005117c
mov ecx, dword [edx + 0xc]
add ecx, ecx
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
push dword [eax + 0x14]
call fcn.1001cac0
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [edx + 0x14], esi
mov dword [edx + 0x10], ebx
mov esi, dword [esp + 4]
mov dword [edx + 0xc], edi
lea eax, [esp + 0x170]
push eax
push 0
mov ebx, dword [esp + 0x1f8]
push ebx
push edi
push dword [edx + 0x14]
call fcn.1001cf60
mov edx, dword [esp + 0x30]
add esp, 0x14
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x170]
sub ecx, ebx
mov dword [edx + 8], ecx
vmovq xmm0, qword [edx + 0x3c]
vmovd xmm1, eax
vpbroadcastd xmm1, xmm1
vpminsd xmm0, xmm0, xmm1
vmovq qword [edx + 0x3c], xmm0
mov ecx, dword [edx + 0x44]
cmp ecx, eax
cmovl eax, ecx
vpextrd ecx, xmm0, 1
mov dword [edx + 0x44], eax
cmp ecx, eax
setne al
mov ecx, ebp
and cl, al
mov eax, dword [esp + 0x1fc]
mov ebx, ecx
mov ecx, eax
mov ebp, dword [esp + 0x1ec]
movzx eax, byte [esp + 0x2c]
or al, bl
je 0x1005121e
mov dword [esp + 0x6c], 0
test edx, edx
je 0x10051249
mov eax, ecx
and eax, 0x4000
je 0x1005123e
jmp 0x10051249
mov dword [esp + 0x6c], 0
test edx, edx
je 0x10051249
mov eax, ecx
and eax, 0x4000
jne 0x10051249
mov eax, dword [esp]
cmp dword [eax + 0x1bd0], esi
jne 0x10051249
cmp byte [edx + 0x30], 0
setne al
mov dword [esp + 0x6c], eax
test ebp, ebp
mov dword [esp + 0x8c], ebx
je 0x1005126d
mov eax, dword [esp + 0x1f0]
cmp byte [esp + 0x6c], 0
je 0x10051265
mov eax, dword [edx + 0x20]
cmp byte [eax], 0
sete bl
jmp 0x1005126f
xor ebx, ebx
test ecx, 0x8000
sete al
or al, bl
mov byte [esp + 0x60], al
jne 0x10051305
mov esi, dword [esp]
mov edi, ecx
mov ecx, dword [esi + 0x1930]
push 0x2a
call fcn.1003dd00
lea ecx, [esi + 0x2e28]
mov edx, dword [esi + 0x1930]
vmovss xmm0, dword [edx + 0x10]
vmovss dword [esi + 0x2e38], xmm0
vmovss xmm0, dword [edx + 0x44]
vmovss dword [esi + 0x2e6c], xmm0
vmovss xmm0, dword [edx + 0x48]
vmovss dword [esi + 0x2e70], xmm0
vmovss xmm0, dword [edx + 0x4c]
vmovss dword [esi + 0x2e74], xmm0
mov edx, dword [edx + 0x30]
mov dword [esi + 0x2e58], edx
mov dword [esi + 0x2e54], eax
vmovd xmm0, dword [eax + 4]
vmovd dword [esi + 0x2e34], xmm0
mov esi, dword [esp + 4]
push ecx
call fcn.1002ff00
mov ecx, edi
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x140], 0
mov edi, dword [esp]
cmp dword [edi + 0x1bd0], esi
vmovups xmm4, xmmword [esp + 0x30]
mov dword [esp + 0x14], ebx
jne 0x10051713
mov byte [edx + 0xe6e], 0
mov eax, dword [esp + 0x1f4]
mov dword [edx + 0x34], eax
mov dword [edx + 0xe70], ecx
mov eax, dword [esp + 0x200]
mov dword [edx + 0xe74], eax
mov eax, dword [esp + 0x204]
mov dword [edx + 0xe78], eax
movzx eax, byte [edi + 0xec]
mov ecx, eax
xor cl, 1
mov esi, dword [edx + 8]
mov dword [esp + 0x140], esi
mov byte [edi + 0x1bdd], cl
mov dword [edi + 0x31bc], 1
cmp dword [esp + 0x18], 0
mov esi, edi
je 0x1005139f
vmovss xmm0, dword [esi + 0xe8]
mov ecx, dword [esp + 0x40]
vsubss xmm1, xmm0, dword [ecx + 0xd4]
jmp 0x100513af
vmovss xmm0, dword [esi + 0x1934]
vmulss xmm1, xmm0, dword [0x10129738]
mov ecx, dword [esp + 0x44]
movzx ebx, byte [esi + 0xb1]
test cl, cl
je 0x10051422
mov dword [edx + 0x40], 0
mov eax, dword [edx + 4]
mov dword [edx + 0x44], eax
mov dword [edx + 0x3c], eax
mov byte [edx + 0x52], 0
mov byte [edx + 0xe6d], 1
cmp byte [edx + 0xe6d], 0
je 0x100513f2
cmp byte [esi + 0xec], 0
jne 0x100513f2
mov byte [edx + 0xe6d], 0
cmp byte [esi + 0xfc], 0
je 0x1005149e
mov eax, ebx
cmp byte [esi + 0xfe], 0
sete bl
je 0x10051543
test al, al
mov esi, dword [esp + 4]
jne 0x100514aa
jmp 0x1005154b
vmovss xmm0, dword [esi + 0xe4]
vsubss xmm0, xmm0, dword [esp + 0x1b0]
vsubss xmm0, xmm0, dword [esi + 0x1554]
vaddss xmm0, xmm0, dword [edx + 0x38]
test bl, bl
sete cl
and cl, byte [esp + 8]
cmp cl, 1
jne 0x1005145b
cmp byte [esi + 0x3e5], 0
jne 0x100513be
movzx ecx, byte [esp + 8]
xor cl, 1
test bl, bl
sete dl
or dl, cl
jne 0x100514bc
cmp byte [esi + 0x3e5], 0
je 0x100514bc
mov edi, dword [esp + 0x1c]
mov ecx, edi
push 0x20000c
call fcn.10053b50
mov ecx, edi
push 0x60000d
call fcn.10053b50
mov edx, edi
vmovups xmm4, xmmword [esp + 0x30]
jmp 0x100513d9
test bl, bl
mov esi, dword [esp + 4]
je 0x10051549
mov eax, dword [esp]
cmp byte [eax + 0xff], 0
setne bl
jmp 0x1005154b
cmp byte [esi + 0x3e0], 0
mov edx, dword [esp + 0x1c]
je 0x100514d6
cmp byte [edx + 0xe6d], 0
je 0x100515d0
test al, al
je 0x100513d9
cmp byte [edx + 0xe6d], 0
jne 0x100513d9
vmovss xmm3, dword [esi + 0x370]
vxorps xmm2, xmm2, xmm2
vucomiss xmm3, xmm2
jne 0x10051513
jp 0x10051513
vmovss xmm3, dword [esi + 0x374]
vucomiss xmm3, xmm2
jne 0x10051513
jnp 0x100513d9
mov eax, dword [esp + 0x1c]
lea edx, [eax + 0x3c]
mov ecx, dword [esp + 0x1c]
call fcn.10055210
mov edx, dword [esp + 0x1c]
vmovups xmm4, xmmword [esp + 0x30]
mov dword [edx + 0xe68], 0xbe99999a
mov byte [edx + 0xe6c], 1
jmp 0x100513d9
mov esi, dword [esp + 4]
jmp 0x1005154b
xor ebx, ebx
test dword [esp + 0x1fc], 0x400
je 0x10051653
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x10051653
push 1
push eax
call fcn.1002e330
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
xor al, 1
or al, bl
jne 0x10051653
test dword [esp + 0x1fc], 0x4000
jne 0x10051653
mov eax, dword [esp]
cmp byte [eax + 0xfd], 0
jne 0x10051653
mov eax, dword [esp]
mov ecx, dword [eax + 0x150c]
mov eax, dword [eax + 0x1514]
lea ecx, [eax + ecx*2]
cmp eax, ecx
jae 0x10051604
cmp word [eax], 9
lea eax, [eax + 2]
jne 0x100515be
jmp 0x10051653
cmp byte [esp + 8], 0
je 0x100513d9
mov eax, dword [esp + 0x1c]
lea edx, [eax + 0x3c]
mov ecx, dword [esp + 0x1c]
call fcn.100551c0
mov edx, dword [esp + 0x1c]
vmovups xmm4, xmmword [esp + 0x30]
mov dword [edx + 0xe68], 0xbe99999a
jmp 0x100513d9
mov dword [esp + 0x170], 9
lea ecx, [esp + 0x170]
mov edx, dword [esp + 0x1fc]
push 2
push dword [esp + 0x208]
push dword [esp + 0x208]
call fcn.10055260
add esp, 0xc
test al, al
je 0x10051649
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x170]
call fcn.10053b50
vmovups xmm4, xmmword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp]
cmp dword [eax + 0x150c], 0
jle 0x10051705
mov eax, dword [esp + 0x1fc]
shr eax, 0xe
and eax, 1
or al, bl
or al, byte [esp + 0xc]
mov ebx, dword [esp]
je 0x100519d7
cmp dword [ebx + 0x1510], 0
mov edi, ebx
mov ecx, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x14]
jns 0x100516ef
mov ebp, ebx
mov ebx, ecx
push 0
call fcn.1001ca90
add esp, 4
mov esi, eax
mov eax, dword [edi + 0x1514]
test eax, eax
je 0x100516d0
mov ecx, dword [edi + 0x150c]
add ecx, ecx
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [edi + 0x1514]
call fcn.1001cac0
add esp, 4
mov dword [edi + 0x1514], esi
mov dword [edi + 0x1510], 0
mov edx, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x1ec]
mov dword [edi + 0x150c], 0
mov esi, dword [esp + 4]
vmovups xmm4, xmmword [esp + 0x30]
jmp 0x10051713
mov ecx, dword [esp + 0x1fc]
mov edi, dword [esp]
mov ebx, dword [esp + 0x14]
mov eax, dword [edi + 0x1bd0]
mov dword [esp + 0xc], 0
cmp eax, esi
mov dword [esp + 0xec], ebp
jne 0x100517e2
cmp byte [edi + 0x1bdc], 0
jne 0x10051a61
cmp byte [esp + 0x50], 0
je 0x10051a59
mov ebx, ecx
mov ecx, dword [esp]
vmovups xmm0, xmmword [esp + 0x130]
vsubss xmm0, xmm0, dword [ecx + 0x1558]
vdivss xmm0, xmm0, dword [ecx + 0x1934]
vcvttss2si eax, xmm0
cmp eax, 2
mov ebp, 1
cmovge ebp, eax
mov dword [edx + 0x4c], ebp
movzx eax, byte [ecx + 0xfd]
mov dword [esp + 0x50], eax
movzx eax, byte [ecx + 0xb1]
mov byte [esp + 8], al
test al, al
je 0x10051e61
mov edi, dword [ecx + 0x37c]
cmp edi, 0xa
sete al
mov dword [esp + 0x44], eax
lea eax, [ecx + 0xfe]
mov dword [esp + 0x68], eax
lea eax, [ecx + 0xfc]
movzx edx, byte [ecx + 0xfe]
cmp byte [ecx + 0xff], 0
mov dword [esp + 0xac], eax
je 0x10051e8d
movzx eax, byte [eax]
or al, dl
sete al
mov dword [esp + 0x10], eax
jmp 0x10051e95
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
cmp eax, esi
jne 0x100524dc
test ecx, 0x4000
jne 0x100519b6
mov eax, dword [esp + 8]
xor al, 1
jne 0x100519b6
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xc], eax
push eax
push dword [esp + 0x1f4]
mov edi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
mov ecx, edi
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
test eax, eax
je 0x100519b6
mov ebx, dword [edx + 0x24]
lea eax, [ebx - 1]
mov dword [esp + 0x50], eax
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 0x170], xmm0
mov dword [esp + 0x178], 0
xor ebp, ebp
mov eax, 0
mov esi, 0
cmp ebx, 2
jl 0x100518c1
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
lea esi, [edi + eax]
push esi
push edi
call fcn.1001cff0
add esp, 8
inc eax
lea ecx, [esp + 0x170]
push eax
call fcn.10055150
push 0
push esi
push edi
push dword [esp + 0x17c]
push dword [esp + 0x188]
call fcn.1001cf60
mov edx, dword [esp + 0x30]
add esp, 0x14
mov esi, dword [esp + 0x170]
mov eax, dword [esp + 0x178]
mov dword [esp + 0xdc], eax
dec esi
cmp ebx, 2
cmovl esi, ebp
mov ebx, dword [edx + 4]
lea ecx, [edx + 0x5c]
mov edi, edx
xor edx, edx
push esi
push ebx
call fcn.1005af90
add esp, 8
test ebx, ebx
jle 0x1005194c
test eax, eax
je 0x1005194c
lea ebp, [ebx - 1]
mov ecx, ebx
and ecx, 3
xor edx, edx
cmp ebp, 3
jb 0x10051939
and ebx, 0xfffffffc
xor edx, edx
mov ebp, dword [edi + 0x14]
movzx ebp, word [ebp + edx*2]
mov word [eax + edx*2], bp
mov ebp, dword [edi + 0x14]
movzx ebp, word [ebp + edx*2 + 2]
mov word [eax + edx*2 + 2], bp
mov ebp, dword [edi + 0x14]
movzx ebp, word [ebp + edx*2 + 4]
mov word [eax + edx*2 + 4], bp
mov ebp, dword [edi + 0x14]
movzx ebp, word [ebp + edx*2 + 6]
mov word [eax + edx*2 + 6], bp
add edx, 4
cmp ebx, edx
jne 0x100518ff
test ecx, ecx
je 0x1005194c
mov ebx, dword [edi + 0x14]
movzx ebx, word [ebx + edx*2]
mov word [eax + edx*2], bx
inc edx
dec ecx
jne 0x1005193d
mov ebp, dword [edi + 4]
mov ebx, dword [edi + 0x14]
mov byte [edi + 0xe6e], 1
lea eax, [ebx + ebp*2]
push eax
push ebx
call fcn.1001d120
add esp, 8
vmovq xmm0, qword [edi + 4]
vmovd xmm1, ebp
vpinsrd xmm1, xmm1, eax, 1
vpsubd xmm0, xmm0, xmm1
vmovq qword [edi + 4], xmm0
mov ecx, dword [edi + 0x14]
movzx eax, word [ecx + ebp*2]
test ax, ax
mov edx, edi
je 0x10051fcb
lea ecx, [ecx + ebp*2]
add ecx, 2
mov edi, dword [esp + 0xc]
nop word [eax + eax]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100519a0
jmp 0x10051fcf
xor edi, edi
mov eax, 0
cmp byte [esp + 8], 0
jne 0x10052037
mov dword [esp + 0xc], 0
xor eax, eax
jmp 0x10051a6b
xor esi, esi
lea edi, [esp + 0x170]
jmp 0x10051a06
cmp byte [ebx + 0xfd], 0
je 0x10051a1c
inc esi
cmp esi, dword [ebx + 0x150c]
jge 0x1005167f
mov eax, dword [ebx + 0x1514]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x170], eax
cmp eax, 9
je 0x100519f0
mov ecx, edi
mov edx, dword [esp + 0x1fc]
push 2
push dword [esp + 0x208]
push dword [esp + 0x208]
call fcn.10055260
mov edx, dword [esp + 0x28]
add esp, 0xc
test al, al
je 0x100519f9
mov ecx, edx
push dword [esp + 0x170]
call fcn.10053b50
mov edx, dword [esp + 0x1c]
jmp 0x100519f9
mov dword [esp + 0xc], 0
xor eax, eax
mov dword [esp + 0x10], 0
test ecx, 0x4000
mov dword [esp + 0x50], eax
jne 0x10051b18
mov byte [edx + 0x30], 1
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x1c]
lea edi, [ecx*4 + 1]
cmp eax, edi
jge 0x10051aeb
test eax, eax
je 0x10051aa1
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
add ebx, eax
jmp 0x10051aa6
mov ebx, 8
cmp ebx, edi
cmovle ebx, edi
cmp eax, ebx
jge 0x10051aeb
push ebx
call fcn.1001ca90
mov edx, dword [esp + 0x20]
add esp, 4
mov esi, eax
mov eax, dword [edx + 0x20]
test eax, eax
je 0x10051ae5
push dword [edx + 0x18]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
push dword [eax + 0x20]
call fcn.1001cac0
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [edx + 0x20], esi
mov dword [edx + 0x1c], ebx
mov dword [edx + 0x18], edi
push 0
push dword [edx + 0x14]
push edi
push dword [edx + 0x20]
call fcn.1001d050
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [esp + 0x1fc]
vmovups xmm4, xmmword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
test ecx, 0x801c0
je 0x10051e0b
test cl, 0x40
mov edi, ecx
je 0x10051b5e
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x10051b5e
push 1
push eax
call fcn.1002e330
mov ecx, edi
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
test al, al
je 0x10051b5e
xor eax, eax
mov ecx, 0x40
jmp 0x10051c04
test cl, 0x80
je 0x10051bcd
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x10051b9d
push 1
push ecx
call fcn.1002e330
add esp, 8
test al, al
je 0x10051b8e
mov eax, 3
mov ecx, 0x80
mov edx, dword [esp + 0x1c]
jmp 0x10051c04
mov eax, dword [0x1017f770]
vmovups xmm4, xmmword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 0x44]
test eax, eax
mov ecx, edi
js 0x10051bcd
push 1
push eax
call fcn.1002e330
mov ecx, edi
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
test al, al
je 0x10051bcd
mov eax, 4
mov ecx, 0x80
jmp 0x10051c04
test ecx, 0x80000
je 0x10051bea
cmp byte [edx + 0xe6e], 0
je 0x10051bea
mov eax, 0x16
mov ecx, 0x80000
jmp 0x10051c04
test ecx, 0x100
mov eax, dword [esp + 0x50]
je 0x10051e0b
mov eax, 0x16
mov ecx, 0x100
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [esp + 0x17c], ymm0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], edi
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x180], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x184], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x188], eax
mov eax, dword [edx + 0x34]
mov dword [esp + 0x18c], eax
mov byte [esp + 0x190], 0
mov edi, dword [edx + 0x14]
mov eax, dword [edx + 0x3c]
lea eax, [edi + eax*2]
push eax
push edi
mov ebx, edx
vzeroupper
call fcn.1001d120
add esp, 8
mov esi, eax
mov dword [esp + 0x194], eax
mov eax, dword [ebx + 0x40]
lea eax, [edi + eax*2]
push eax
push edi
call fcn.1001d120
add esp, 8
mov ebp, eax
mov dword [esp + 0x198], eax
mov eax, dword [ebx + 0x44]
lea eax, [edi + eax*2]
push eax
push edi
call fcn.1001d120
add esp, 8
mov edi, eax
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x170]
push eax
call dword [esp + 0x204]
add esp, 4
movzx ebx, byte [esp + 0x190]
test bl, bl
setne bh
mov eax, dword [esp + 0x194]
cmp eax, esi
jne 0x10051ce6
test bh, bh
je 0x10051d07
mov ecx, dword [esp + 0x184]
add eax, ecx
push eax
push ecx
call fcn.1001cff0
add esp, 8
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x3c], eax
mov byte [ecx + 0xe6c], 1
mov eax, dword [esp + 0x198]
cmp eax, ebp
setne cl
or cl, bh
cmp cl, 1
vmovups xmm4, xmmword [esp + 0x30]
mov edx, dword [esp + 0x1c]
jne 0x10051d52
cmp eax, dword [esp + 0x194]
jne 0x10051d32
mov eax, dword [edx + 0x3c]
jmp 0x10051d4f
mov ecx, dword [esp + 0x184]
add eax, ecx
push eax
push ecx
call fcn.1001cff0
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x19c]
cmp eax, edi
setne cl
or cl, bh
cmp cl, 1
jne 0x10051d93
cmp eax, dword [esp + 0x198]
jne 0x10051d73
mov eax, dword [edx + 0x40]
jmp 0x10051d90
mov ecx, dword [esp + 0x184]
add eax, ecx
push eax
push ecx
call fcn.1001cff0
mov edx, dword [esp + 0x24]
vmovups xmm4, xmmword [esp + 0x38]
add esp, 8
mov dword [edx + 0x44], eax
test bl, bl
mov ecx, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x14]
je 0x10051e07
mov edi, ecx
test ecx, 0x40000
je 0x10051dcb
mov eax, dword [esp + 0x188]
sub eax, dword [esp + 0x140]
jle 0x10051dcb
lea ecx, [edx + 0xc]
add eax, dword [ecx]
push eax
call fcn.10055150
mov edx, dword [esp + 0x1c]
push 0
push 0
push dword [esp + 0x18c]
push dword [edx + 0xc]
push dword [edx + 0x14]
call fcn.1001cf60
mov edx, dword [esp + 0x30]
add esp, 0x14
mov dword [edx + 4], eax
mov eax, dword [esp + 0x188]
mov dword [edx + 8], eax
mov dword [edx + 0xe68], 0xbe99999a
vmovups xmm4, xmmword [esp + 0x30]
mov ecx, edi
mov eax, dword [esp + 0x50]
test ecx, 0x4000
jne 0x1005204b
mov ebp, ebx
mov ebx, ecx
mov esi, dword [edx + 0x20]
push dword [esp + 0x1f0]
push esi
mov edi, edx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x10051e4c
mov eax, dword [edi + 8]
mov dword [esp + 0xc], esi
vmovups xmm4, xmmword [esp + 0x30]
mov edx, edi
mov ecx, ebx
mov ebx, ebp
jmp 0x1005204b
vmovups xmm4, xmmword [esp + 0x30]
mov edx, edi
mov ecx, ebx
mov ebx, ebp
mov eax, dword [esp + 0x50]
jmp 0x1005204b
lea eax, [ecx + 0xfe]
mov dword [esp + 0x68], eax
lea eax, [ecx + 0xfc]
mov dword [esp + 0xac], eax
movzx edx, byte [ecx + 0xfc]
mov edi, dword [ecx + 0x37c]
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov byte [esp + 0x4c], dl
xor eax, eax
cmp edi, 1
sete al
xor ecx, ecx
cmp edi, 8
sete cl
cmp byte [esp + 8], 0
cmove ecx, eax
mov dword [esp + 0xc], ecx
cmp cl, 1
jne 0x10051f00
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x80]
test eax, eax
js 0x10051f00
push 1
push eax
call fcn.1002e330
mov ecx, dword [esp + 0x24]
add esp, 8
test al, al
je 0x10051f00
mov eax, ebx
test ebx, 0xc000
sete al
mov dword [esp + 0xfc], eax
jne 0x10051f8d
cmp dword [esp + 0x18], 0
jne 0x10051f5a
jmp 0x10051f8d
cmp edi, 2
jne 0x10051f77
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x5c]
test eax, eax
js 0x10051f77
mov esi, ebp
movzx ebp, bx
shr ebp, 0xf
shr ebx, 0xe
and ebx, 1
push 1
push eax
call fcn.1002e330
add esp, 8
xor al, 1
mov ecx, ebp
or al, cl
or al, bl
mov ecx, eax
xor cl, 1
mov dword [esp + 0xfc], ecx
test al, al
jne 0x1005215a
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1c]
mov ebp, esi
je 0x10051f82
mov eax, dword [ecx + 0x40]
cmp eax, dword [ecx + 0x44]
setne al
mov dword [esp + 0xfc], eax
cmp byte [esp + 0xc], 0
je 0x1005216e
jmp 0x10051f8d
mov dword [esp + 0xfc], 0
cmp byte [esp + 0xc], 0
je 0x1005216e
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x78]
test eax, eax
js 0x1005216e
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
je 0x1005216e
mov eax, ebx
and eax, 0x4008000
cmp eax, 0x4000000
mov ecx, dword [esp + 0x1c]
je 0x100521b6
jmp 0x100521e1
mov edi, dword [esp + 0xc]
mov word [ebx], 0
test esi, esi
jle 0x10051ffb
mov ecx, edx
xor edx, edx
push esi
push dword [esp + 0xe0]
call fcn.1005a7f0
mov edx, dword [esp + 0x24]
add esp, 8
test al, al
je 0x10051ffb
mov dword [edx + 0x3c], esi
mov byte [edx + 0x52], 0
mov eax, dword [esp + 0x178]
test eax, eax
mov ecx, dword [esp + 0x1fc]
je 0x1005201e
push eax
mov esi, ecx
call fcn.1001cac0
mov ecx, esi
mov edx, dword [esp + 0x20]
add esp, 4
cmp byte [esp + 8], 0
vmovups xmm4, xmmword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
je 0x10051a6b
mov dword [esp + 0xc], edi
test cl, 0x20
je 0x1005204b
cmp byte [esp + 0x10], 0
jne 0x10051a6b
mov esi, eax
mov edi, dword [esp + 0xc]
test edi, edi
setne al
mov dword [esp + 8], eax
je 0x1005212d
test ecx, 0x40000
jne 0x1005207b
mov ecx, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1f4]
jmp 0x1005210e
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [esp + 0x17c], ymm0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x170], 0x40000
mov dword [esp + 0x174], ecx
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], esi
inc esi
mov eax, dword [esp + 0x1f4]
cmp eax, esi
cmovg esi, eax
mov dword [esp + 0x18c], esi
mov eax, dword [esp + 0x204]
mov dword [esp + 0x178], eax
lea eax, [esp + 0x170]
push eax
vzeroupper
call dword [esp + 0x204]
add esp, 4
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
lea esi, [edx - 1]
cmp eax, esi
cmovl esi, eax
inc esi
cmp esi, edx
cmovge esi, edx
push esi
push edi
mov dword [esp + 0x50], ecx
push ecx
call fcn.1001ca60
add esp, 0xc
vmovups xmm4, xmmword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [edx + 0xe70], 0
vpxor xmm0, xmm0, xmm0
vmovq qword [edx + 0xe74], xmm0
mov esi, dword [esp + 4]
cmp byte [esp + 0xbc], 0
jne 0x100524ee
jmp 0x10052508
mov ebx, dword [esp + 0x1fc]
mov ebp, esi
cmp byte [esp + 0xc], 0
jne 0x10051f8d
cmp edi, 1
jne 0x100521cf
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x58]
test eax, eax
js 0x100521cf
test ebx, 0x8000
sete bl
push 1
push eax
call fcn.1002e330
add esp, 8
and al, bl
cmp dword [esp + 0x18], 0
mov dword [esp + 0xdc], eax
je 0x100535b9
test al, al
mov ebx, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1c]
je 0x100521da
mov eax, dword [ecx + 0x40]
cmp eax, dword [ecx + 0x44]
setne al
mov dword [esp + 0xdc], eax
cmp byte [esp + 0xc], 0
je 0x100521fc
jmp 0x100521e1
mov dword [esp + 0xdc], 0
cmp byte [esp + 0xc], 0
je 0x100521fc
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x7c]
test eax, eax
js 0x100521fc
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
jne 0x10052220
cmp edi, 2
jne 0x1005222f
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x58]
test eax, eax
mov edi, dword [esp + 0x50]
js 0x1005223d
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
je 0x1005223d
test ebx, 0x4000
sete al
mov dword [esp + 0x64], eax
jmp 0x10052237
mov dword [esp + 0x64], 0
mov edi, dword [esp + 0x50]
jmp 0x10052245
mov dword [esp + 0x64], 0
cmp byte [esp + 0xc], 0
je 0x10052271
mov edi, ebx
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x10052275
push 1
push ecx
call fcn.1002e330
add esp, 8
mov ecx, eax
mov eax, dword [0x1017f770]
jmp 0x10052277
xor ecx, ecx
jmp 0x100522b4
xor ecx, ecx
test edi, 0x14000
sete dl
mov dword [esp + 0x9c], edx
and cl, dl
mov eax, dword [eax + 0x84]
test eax, eax
js 0x100522ae
push 1
push eax
mov ebx, ecx
call fcn.1002e330
mov ecx, ebx
mov ebx, edi
add esp, 8
test al, al
mov edi, dword [esp + 0x50]
je 0x100522b4
jmp 0x10052307
mov ebx, edi
mov edi, dword [esp + 0x50]
cmp byte [esp + 0x44], 0
je 0x100522ed
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x88]
test eax, eax
js 0x100522ed
mov esi, ecx
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
je 0x100522fa
test ebx, 0x14000
sete al
mov dword [esp + 0x9c], eax
jmp 0x10052305
mov dword [esp + 0x9c], 0
jmp 0x10052307
mov dword [esp + 0x9c], 0
mov ecx, esi
mov dword [esp + 0x50], ecx
mov ecx, dword [0x1017f770]
mov eax, dword [ecx + 0x68]
test eax, eax
js 0x1005232f
mov bl, 1
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
jne 0x10052347
mov ecx, dword [0x1017f770]
mov eax, dword [ecx + 0x70]
test eax, eax
js 0x10052345
push 1
push eax
call fcn.1002e330
add esp, 8
mov ebx, eax
jmp 0x10052347
xor ebx, ebx
mov esi, ebx
push 1
push 0
call fcn.10032b00
add esp, 8
fstp dword [esp + 0x12c]
vmovss xmm0, dword [esp + 0x12c]
vpxor xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x1005238c
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x64]
mov bl, 1
test eax, eax
js 0x100523b3
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
je 0x100523b3
push 1
push 2
call fcn.10032b00
add esp, 8
fstp dword [esp + 0x128]
vmovss xmm0, dword [esp + 0x128]
vucomiss xmm0, dword [0x10129730]
seta bl
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x6c]
test eax, eax
js 0x100523d0
mov bh, 1
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
jne 0x100523f7
push 1
push 1
call fcn.10032b00
add esp, 8
fstp dword [esp + 0x124]
vmovss xmm0, dword [esp + 0x124]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
seta bh
shl edi, 0x16
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x10052438
push 1
push ecx
call fcn.1002e330
add esp, 8
test al, al
je 0x10052433
cmp byte [esp + 0x4c], 0
mov eax, 0x200000
mov ecx, 0x20000c
cmove ecx, eax
cmp byte [esp + 0x10], 0
mov eax, 0x200004
jmp 0x10052472
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x1005340a
push 1
push ecx
call fcn.1002e330
add esp, 8
test al, al
je 0x10053405
cmp byte [esp + 0x4c], 0
mov eax, 0x200001
mov ecx, 0x20000d
cmove ecx, eax
cmp byte [esp + 0x10], 0
mov eax, 0x200005
cmove eax, ecx
or eax, edi
mov esi, dword [esp + 0x1c]
mov ecx, esi
push eax
call fcn.10053b50
mov edx, esi
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x1fc]
mov esi, dword [esp + 4]
vmovups xmm4, xmmword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov eax, dword [edx + 0x40]
cmp eax, dword [edx + 0x44]
setne al
and al, byte [esp + 0x2c]
mov ecx, dword [esp + 0x8c]
or cl, al
mov dword [esp + 0x8c], ecx
mov eax, dword [esp]
mov eax, dword [eax + 0x1bd0]
mov ecx, ebx
mov ebx, edi
cmp eax, esi
je 0x100517fa
mov dword [esp + 8], 0
cmp byte [esp + 0xbc], 0
je 0x10052508
mov eax, dword [esp]
cmp dword [eax + 0x1bd0], esi
jne 0x10052508
call fcn.10020330
mov edx, dword [esp + 0x1c]
vmovups xmm4, xmmword [esp + 0x30]
cmp dword [esp + 0x18], 0
jne 0x1005257d
push 1
push esi
lea eax, [esp + 0x1b8]
push eax
call fcn.1001f240
add esp, 0xc
mov eax, dword [esp]
vmovss xmm0, dword [eax + 0x155c]
vmovss dword [esp + 0xc], xmm0
push 0x3f800000
push 7
call fcn.1001dab0
add esp, 8
vmovups xmm0, xmmword [esp + 0x1b0]
sub esp, 0x1c
vmovss xmm1, dword [esp + 0x28]
vmovss dword [esp + 0x18], xmm1
mov dword [esp + 0x10], eax
vmovups xmmword [esp], xmm0
mov dword [esp + 0x14], 1
call fcn.1001ec30
mov edx, dword [esp + 0x38]
vmovups xmm4, xmmword [esp + 0x4c]
add esp, 0x1c
vmovsd xmm1, qword [esp + 0x1b0]
vblendps xmm0, xmm4, xmmword [esp + 0x7c], 0xe
vaddps xmm0, xmm0, xmm1
vmovups xmmword [esp + 0xdc], xmm0
vmovlhps xmm0, xmm1, xmm0
vmovups xmmword [esp + 0x160], xmm0
cmp dword [esp + 0x18], 0
je 0x100525ed
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0xd0]
mov ecx, dword [ecx + 0xd4]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x158], eax
vmovd xmm0, ecx
vmovdqu xmmword [esp + 0x9c], xmm0
vmovd xmm0, eax
vmovdqu xmmword [esp + 0x50], xmm0
cmp byte [esp + 0x6c], 0
jne 0x1005261f
jmp 0x10052626
mov eax, dword [esp]
vmovsd xmm0, qword [eax + 0x1554]
vaddps xmm0, xmm1, xmm0
vmovlps qword [esp + 0x158], xmm0
vmovups xmmword [esp + 0x50], xmm0
vmovshdup xmm0, xmm0
vmovups xmmword [esp + 0x9c], xmm0
cmp byte [esp + 0x6c], 0
je 0x10052626
mov eax, dword [edx + 0x20]
mov dword [esp + 0x48], eax
mov eax, ebx
test al, al
vmovups xmmword [esp + 0x140], xmm1
je 0x1005266e
mov esi, dword [esp + 0x1ec]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
add edi, esi
movzx eax, byte [esp + 0x2c]
or al, byte [esp + 0x8c]
je 0x1005277c
mov dword [esp + 0x48], esi
mov edx, dword [esp + 0x1c]
vmovups xmm1, xmmword [esp + 0x140]
jmp 0x10052689
movzx eax, byte [esp + 0x2c]
or al, byte [esp + 0x8c]
cmp al, 1
jne 0x1005279c
mov edi, dword [edx + 8]
add edi, dword [esp + 0x48]
mov ebp, dword [edx + 0x14]
mov dword [esp + 0xc], 0
mov esi, 0xfffffc18
mov dword [esp + 0x7c], 0
mov ebx, 0xfffffc18
mov ecx, 0
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x4c], ebp
je 0x100526d2
mov eax, dword [edx + 0x3c]
mov ecx, dword [esp + 0x4c]
lea eax, [ecx + eax*2]
mov dword [esp + 0x7c], eax
mov ebp, dword [esp + 0x4c]
mov ecx, 1
mov ebx, 0xffffffff
vmovshdup xmm0, xmmword [esp + 0xdc]
vmovups xmmword [esp + 0xec], xmm0
vmovshdup xmm0, xmm1
vmovups xmmword [esp + 0xbc], xmm0
cmp byte [esp + 0x8c], 0
mov dword [esp + 0x44], edi
je 0x1005271d
mov eax, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
cmp eax, edx
cmovl edx, eax
lea eax, [edx*2]
add eax, ebp
mov dword [esp + 0xc], eax
inc ecx
mov esi, 0xffffffff
mov eax, dword [esp + 0x18]
shr eax, 0x1a
add eax, ecx
xor edi, edi
mov ecx, ebp
mov ebp, dword [esp + 0xc]
jmp 0x1005273b
test edx, edx
je 0x10052835
add ecx, 2
movzx edx, word [ecx]
cmp edx, 0xa
jne 0x10052730
inc edi
cmp ebx, 0xffffffff
jne 0x10052760
mov ebx, 0xffffffff
cmp ecx, dword [esp + 0x7c]
jb 0x10052760
cmp eax, 2
jl 0x1005282f
dec eax
mov ebx, edi
cmp esi, 0xffffffff
jne 0x10052738
mov esi, 0xffffffff
cmp ecx, ebp
jb 0x10052738
cmp eax, 2
jl 0x10052833
dec eax
mov esi, edi
jmp 0x10052738
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0xc], xmm0
vxorps xmm3, xmm3, xmm3
cmp dword [esp + 0x18], 0
vmovups xmm4, xmmword [esp + 0x30]
jne 0x100527ae
jmp 0x10052b2a
cmp dword [esp + 0x18], 0
je 0x100527fd
mov eax, dword [esp + 0x48]
mov dword [esp + 0xec], eax
xor eax, eax
mov edi, dword [esp + 0xec]
nop word [eax + eax]
movzx ecx, byte [edi]
inc edi
test ecx, ecx
je 0x100527d0
cmp ecx, 0xa
jne 0x100527c0
inc eax
jmp 0x100527c0
inc eax
dec edi
xor esi, esi
vcvtsi2ss xmm0, xmm5, eax
mov eax, dword [esp]
vmulss xmm0, xmm0, dword [eax + 0x1934]
vmovss dword [esp + 0xc], xmm0
vmovaps xmm3, xmm4
cmp dword [esp + 0x18], 0
je 0x10052b2a
jmp 0x10052b4b
mov eax, dword [esp]
cmp dword [eax + 0x1bd0], esi
jne 0x10052b04
mov edi, dword [edx + 8]
mov eax, dword [esp + 0x48]
add edi, eax
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0xc], xmm0
vxorps xmm3, xmm3, xmm3
mov dword [esp + 0xec], eax
jmp 0x10052b2a
mov ebx, edi
jmp 0x10052835
mov esi, edi
inc edi
cmp ebx, 0xffffffff
cmove ebx, edi
cmp esi, 0xffffffff
cmove esi, edi
push dword [esp + 0x4c]
push dword [esp + 0x80]
call fcn.1001caf0
vmovups xmm3, xmmword [esp + 0x38]
add esp, 8
vxorps xmm6, xmm6, xmm6
vxorps xmm2, xmm2, xmm2
vxorps xmm5, xmm5, xmm5
cmp eax, dword [esp + 0x7c]
vmovups xmm4, xmmword [esp + 0xcc]
jae 0x100528e5
mov edx, dword [0x1017f770]
mov ecx, dword [edx + 0x1930]
vmovss xmm0, dword [edx + 0x1934]
vdivss xmm0, xmm0, dword [ecx + 0x10]
lea edx, [ecx + 0xc]
mov dword [esp + 0x6c], edx
vxorps xmm5, xmm5, xmm5
vxorps xmm2, xmm2, xmm2
jmp 0x100528c4
lea ebp, [edx*4]
add ebp, dword [ecx + 8]
cmp dword [ecx], edx
cmovle ebp, dword [esp + 0x6c]
vmulss xmm1, xmm0, dword [ebp]
mov ebp, dword [esp + 0xc]
vaddss xmm5, xmm5, xmm1
cmp eax, dword [esp + 0x7c]
jae 0x100528e5
movzx edx, word [eax]
add eax, 2
cmp edx, 0xd
je 0x100528be
cmp edx, 0xa
jne 0x100528a0
vcmpless xmm1, xmm5, xmm2
vblendvps xmm2, xmm5, xmm2, xmm1
vxorps xmm5, xmm5, xmm5
jmp 0x100528be
vcmpltss xmm0, xmm2, xmm5
vmovups xmmword [esp + 0x6c], xmm0
mov eax, dword [esp]
vmovss xmm7, dword [eax + 0x1934]
vmovaps xmm0, xmm7
vxorps xmm1, xmm1, xmm1
test esi, esi
js 0x100529fc
vmovss dword [esp + 0x68], xmm7
vmovups xmmword [esp + 0xfc], xmm5
vmovups xmmword [esp + 0xac], xmm2
push dword [esp + 0x4c]
push ebp
call fcn.1001caf0
add esp, 8
vxorps xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
cmp eax, ebp
jae 0x100529b3
mov edx, dword [0x1017f770]
mov ecx, dword [edx + 0x1930]
vmovss xmm0, dword [edx + 0x1934]
vdivss xmm2, xmm0, dword [ecx + 0x10]
lea edx, [ecx + 0xc]
mov dword [esp + 0x7c], edx
vxorps xmm1, xmm1, xmm1
vxorps xmm0, xmm0, xmm0
jmp 0x10052992
lea ebp, [edx*4]
add ebp, dword [ecx + 8]
cmp dword [ecx], edx
cmovle ebp, dword [esp + 0x7c]
vmulss xmm3, xmm2, dword [ebp]
mov ebp, dword [esp + 0xc]
vaddss xmm1, xmm1, xmm3
cmp eax, ebp
jae 0x100529b3
movzx edx, word [eax]
add eax, 2
cmp edx, 0xd
je 0x1005298e
cmp edx, 0xa
jne 0x10052970
vcmpless xmm3, xmm1, xmm0
vblendvps xmm0, xmm1, xmm0, xmm3
vxorps xmm1, xmm1, xmm1
jmp 0x1005298e
vcmpltss xmm2, xmm0, xmm1
vxorps xmm6, xmm6, xmm6
vcvtsi2ss xmm3, xmm6, esi
vblendvps xmm6, xmm0, xmm1, xmm2
mov eax, dword [esp]
vmovss xmm0, dword [eax + 0x1934]
vmulss xmm1, xmm0, xmm3
vmovups xmm3, xmmword [esp + 0x30]
vmovups xmm4, xmmword [esp + 0xcc]
vmovups xmm2, xmmword [esp + 0xac]
vmovups xmm5, xmmword [esp + 0xfc]
vmovss xmm7, dword [esp + 0x68]
vmovss dword [esp + 0x30], xmm1
vmovups xmm1, xmmword [esp + 0x6c]
vblendvps xmm1, xmm2, xmm5, xmm1
vmovups xmmword [esp + 0x6c], xmm1
vcvtsi2ss xmm1, xmm6, ebx
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x10052a26
vxorps xmm0, xmm0, xmm0
jmp 0x10052a2e
vcvtsi2ss xmm2, xmm6, edi
vmulss xmm0, xmm0, xmm2
vmovss dword [esp + 0xc], xmm0
mov eax, dword [esp + 0x1fc]
mov ecx, dword [esp]
mov ebx, dword [esp + 0x8c]
vmulss xmm1, xmm7, xmm1
cmp byte [esp + 0x2c], 0
vmovss dword [esp + 0xcc], xmm1
je 0x10052abb
mov esi, dword [esp + 0x1c]
cmp byte [esi + 0xe6c], 0
mov esi, dword [esp + 0x40]
je 0x10052abb
test eax, 0x1000
jne 0x10052ac4
vmulss xmm0, xmm3, dword [0x1012995c]
mov eax, dword [esp + 0x1c]
vmovss xmm1, dword [eax + 0x38]
vmovups xmm5, xmmword [esp + 0x6c]
vucomiss xmm1, xmm5
jbe 0x10052bd0
vsubss xmm0, xmm5, xmm0
vxorps xmm1, xmm1, xmm1
vcmpless xmm1, xmm0, xmm1
vandnps xmm0, xmm1, xmm0
vcvttps2dq xmm0, xmm0
vcvtdq2ps xmm0, xmm0
vmovss dword [eax + 0x38], xmm0
vmovss xmm1, dword [esp + 0xcc]
jmp 0x10052acf
mov edx, dword [esp + 0x1c]
jmp 0x10052c9b
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x38], 0
test edx, edx
je 0x10052afb
vsubss xmm0, xmm1, dword [ecx + 0x1934]
vucomiss xmm4, xmm0
mov edx, dword [esp + 0x1c]
jbe 0x10052c09
vxorps xmm1, xmm1, xmm1
vcmpless xmm1, xmm0, xmm1
vandnps xmm4, xmm1, xmm0
jmp 0x10052c2d
mov edx, dword [esp + 0x1c]
jmp 0x10052c94
mov esi, dword [esp + 0x48]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
add edi, esi
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0xc], xmm0
vxorps xmm3, xmm3, xmm3
mov dword [esp + 0xec], esi
mov eax, edi
mov esi, dword [esp + 0xec]
sub eax, esi
cmp eax, 0x1fffff
jg 0x10052bc7
lea esi, [esp + 0x160]
vmovaps xmm4, xmm3
vmovups xmmword [esp + 0x30], xmm4
movzx eax, bl
push 0x3f800000
push eax
call fcn.1001dab0
add esp, 8
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x240]
mov edx, dword [esp]
vmovss xmm0, dword [edx + 0x1934]
mov edx, dword [edx + 0x1930]
sub esp, 0x20
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x10c]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x178]
mov dword [esp + 8], eax
vmovss dword [esp + 4], xmm0
mov dword [esp], edx
mov dword [esp + 0x18], 0
call fcn.100388f0
vmovups xmm3, xmmword [esp + 0x30]
jmp 0x10053247
mov dword [esp + 0x44], edi
jmp 0x10053247
vsubss xmm2, xmm3, dword [ecx + 0x1554]
vsubss xmm2, xmm5, xmm2
vucomiss xmm2, xmm1
vmovss xmm1, dword [esp + 0xcc]
jb 0x10052acf
vaddss xmm0, xmm0, xmm2
vcvttps2dq xmm0, xmm0
vcvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x1c]
vmovss dword [eax + 0x38], xmm0
jmp 0x10052acf
vsubss xmm0, xmm1, dword [esp + 0x130]
vucomiss xmm0, xmm4
jb 0x10052c2d
vmovss xmm1, dword [ecx + 0x1558]
vfmadd231ss xmm0, xmm1, dword [0x1012984c]
vmovaps xmm4, xmm0
vmovss xmm0, dword [ecx + 0x1558]
vmovss xmm1, dword [esp + 0xc]
vfmadd132ss xmm0, xmm1, dword [0x1012984c]
vsubss xmm0, xmm0, dword [esp + 0x130]
vxorps xmm1, xmm1, xmm1
vcmpless xmm2, xmm1, xmm0
vandps xmm0, xmm2, xmm0
vminss xmm0, xmm0, xmm4
vcmpltss xmm1, xmm4, xmm1
vandnps xmm0, xmm1, xmm0
vmovss xmm1, dword [esi + 0x5c]
vsubss xmm1, xmm1, xmm0
vmovups xmm2, xmmword [esp + 0x9c]
vaddss xmm2, xmm2, xmm1
vmovups xmmword [esp + 0x9c], xmm2
vmovss dword [esp + 0x15c], xmm2
vmovss dword [esi + 0x5c], xmm0
mov byte [edx + 0xe6c], 0
vmovss xmm0, dword [edx + 0x38]
vmovss dword [esp + 0x7c], xmm0
test bl, bl
je 0x10052f63
mov eax, dword [edx + 0x40]
mov esi, dword [edx + 0x44]
cmp eax, esi
mov ebx, esi
cmovl ebx, eax
cmovg esi, eax
cmp byte [esp + 0x2c], 0
vmovups xmmword [esp + 0xac], xmm6
jne 0x10052cd8
vmovss xmm0, dword [0x101299f0]
jmp 0x10052ce0
vmovss xmm0, dword [0x10129710]
sub esp, 8
vmovss dword [esp + 4], xmm0
mov dword [esp], 0x2f
call fcn.1001dab0
add esp, 8
mov edi, eax
vxorps xmm6, xmm6, xmm6
cmp dword [esp + 0x18], 0
jne 0x10052d0d
vmovss xmm6, dword [0x101296d4]
cmp ebx, esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
vmovups xmm0, xmmword [esp + 0xac]
jge 0x10052f63
vxorps xmm7, xmm7, xmm7
vxorps xmm2, xmm2, xmm2
cmp dword [esp + 0x18], 0
jne 0x10052d3d
vmovss xmm2, dword [0x1012984c]
lea esi, [eax + esi*2]
lea ebx, [eax + ebx*2]
vaddss xmm1, xmm0, dword [esp + 0x50]
vmovss xmm0, dword [esp + 0x30]
vaddss xmm5, xmm0, dword [esp + 0x9c]
mov eax, dword [esp]
vmovss xmm0, dword [eax + 0x1934]
vbroadcastss xmm2, xmm2
vmovups xmmword [esp + 0x8c], xmm2
vmovss dword [esp + 0x130], xmm6
jmp 0x10052e1a
vsubss xmm1, xmm1, dword [esp + 0x7c]
vblendps xmm3, xmm1, xmmword [esp + 0x8c], 0xe
vinsertps xmm2, xmm2, xmm5, 0x10
vaddps xmm2, xmm3, xmm2
vsubss xmm3, xmm6, xmm0
vinsertps xmm3, xmm0, xmm3, 0x1d
vmovups xmmword [esp + 0x30], xmm5
vinsertps xmm1, xmm1, xmm5, 0x10
vaddps xmm1, xmm1, xmm3
vmovups xmm4, xmmword [esp + 0x140]
vcmpleps xmm3, xmm4, xmm1
vblendvps xmm1, xmm4, xmm1, xmm3
vmovups xmm5, xmmword [esp + 0xdc]
vminps xmm2, xmm2, xmm5
vmovlhps xmm3, xmm1, xmm2
vmovups xmmword [esp + 0x170], xmm3
vshufps xmm2, xmm5, xmm2, 0x11
vshufps xmm1, xmm1, xmm4, 0x11
vcmpltps xmm1, xmm1, xmm2
vpslld xmm1, xmm1, 0x1f
vmovmskps eax, xmm1
cmp al, 0xf
je 0x10052eb6
vmovups xmm5, xmmword [esp + 0x30]
vaddss xmm5, xmm5, xmm0
vmovups xmm1, xmmword [esp + 0x50]
cmp ebx, esi
jae 0x10052f63
vaddss xmm2, xmm0, dword [esp + 0xec]
vucomiss xmm5, xmm2
ja 0x10052f63
vmovups xmm2, xmmword [esp + 0xbc]
vucomiss xmm2, xmm5
jbe 0x10052e53
nop dword [eax]
cmp ebx, esi
jae 0x10052e08
lea eax, [ebx + 2]
cmp word [ebx], 0xa
mov ebx, eax
jne 0x10052e40
mov ebx, eax
jmp 0x10052e08
vxorps xmm3, xmm3, xmm3
cmp ebx, esi
jae 0x10052eb0
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x1930]
vmovss xmm2, dword [eax + 0x1934]
vdivss xmm3, xmm2, dword [ecx + 0x10]
lea edx, [ecx + 0xc]
vxorps xmm2, xmm2, xmm2
jmp 0x10052e87
lea ebx, [eax + 2]
cmp ebx, esi
jae 0x10052efb
mov eax, ebx
movzx ebx, word [ebx]
cmp ebx, 0xd
je 0x10052e80
cmp ebx, 0xa
je 0x10052f06
lea ebp, [ebx*4]
add ebp, dword [ecx + 8]
cmp dword [ecx], ebx
cmovle ebp, edx
vmulss xmm4, xmm3, dword [ebp]
vaddss xmm2, xmm2, xmm4
jmp 0x10052e80
vxorps xmm2, xmm2, xmm2
jmp 0x10052f20
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x240]
push 0
push 0
push edi
lea eax, [esp + 0x184]
push eax
lea eax, [esp + 0x180]
push eax
call fcn.10038070
vxorps xmm7, xmm7, xmm7
vmovss xmm6, dword [esp + 0x130]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp]
vmovss xmm0, dword [eax + 0x1934]
jmp 0x10052e02
add eax, 2
vxorps xmm3, xmm3, xmm3
mov ebx, eax
jmp 0x10052f1c
vxorps xmm3, xmm3, xmm3
vcmpless xmm3, xmm2, xmm3
vandnps xmm3, xmm3, xmm2
add eax, 2
mov ebx, eax
vxorps xmm2, xmm2, xmm2
mov edx, dword [esp + 0x1c]
vmaxss xmm2, xmm2, xmm3
vucomiss xmm7, xmm2
jb 0x10052d7f
mov eax, dword [esp]
mov eax, dword [eax + 0x1930]
mov ecx, dword [eax + 8]
sub ecx, 0xffffff80
lea edx, [eax + 0xc]
cmp dword [eax], 0x21
cmovge edx, ecx
vmovss xmm2, dword [0x10129738]
vmulss xmm2, xmm2, dword [edx]
mov edx, dword [esp + 0x1c]
vcvttps2dq xmm2, xmm2
vcvtdq2ps xmm2, xmm2
jmp 0x10052d7f
xor esi, esi
cmp dword [esp + 0x18], 0
mov edi, dword [esp]
mov ebx, dword [esp + 0x40]
jne 0x10052f9e
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
sub eax, esi
cmp eax, 0x1fffff
vmovups xmm3, xmmword [esp + 0x10c]
vmovups xmm2, xmmword [esp + 0x6c]
jg 0x1005303b
lea esi, [esp + 0x160]
movzx eax, byte [esp + 0x14]
push 0x3f800000
push eax
call fcn.1001dab0
add esp, 8
mov ecx, dword [ebx + 0x240]
vmovups xmm0, xmmword [esp + 0x50]
vsubss xmm0, xmm0, dword [esp + 0x7c]
vmovss dword [esp + 0x170], xmm0
vmovups xmm0, xmmword [esp + 0x9c]
vmovss dword [esp + 0x174], xmm0
vmovss xmm0, dword [edi + 0x1934]
mov edx, dword [edi + 0x1930]
sub esp, 0x20
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
vmovss dword [esp + 4], xmm0
mov dword [esp], edx
mov dword [esp + 0x18], 0
call fcn.100388f0
mov edx, dword [esp + 0x1c]
vmovups xmm3, xmmword [esp + 0x10c]
vmovups xmm2, xmmword [esp + 0x6c]
cmp byte [esp + 0x2c], 0
je 0x10053247
vmovss xmm0, dword [edi + 0x18]
vaddss xmm0, xmm0, dword [edx + 0xe68]
vmovss dword [edx + 0xe68], xmm0
cmp byte [edi + 0xb2], 0
mov al, 1
je 0x100530df
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
jae 0x100530df
vcvtss2sd xmm0, xmm0, xmm0
sub esp, 0x10
vmovsd qword [esp], xmm0
mov dword [esp + 0xc], 0x3ff33333
mov dword [esp + 8], 0x40000000
call sub.api_ms_win_crt_math_l1_1_0.dll_fmod
vmovups xmm2, xmmword [esp + 0x7c]
vmovups xmm3, xmmword [esp + 0x11c]
add esp, 0x10
fstp dword [esp + 0x11c]
vmovss xmm0, dword [0x10129884]
vucomiss xmm0, dword [esp + 0x11c]
setae al
vmovss xmm0, dword [esp + 0x158]
vmovups xmmword [esp + 0x50], xmm0
vmovss xmm0, dword [esp + 0x15c]
vmovups xmmword [esp + 0x9c], xmm0
vmovss xmm0, dword [esp + 0xcc]
vaddss xmm0, xmm0, dword [esp + 0x9c]
vaddss xmm1, xmm2, dword [esp + 0x50]
vsubss xmm1, xmm1, dword [esp + 0x7c]
vinsertps xmm0, xmm1, xmm0, 0x10
vcvttps2dq xmm0, xmm0
vcvtdq2ps xmm4, xmm0
vaddps xmm0, xmm4, xmmword [0x101316f0]
vmovshdup xmm5, xmm4
mov ecx, dword [esp]
vsubss xmm1, xmm5, dword [ecx + 0x1934]
vaddss xmm1, xmm1, dword [0x10129738]
vmovss dword [esp + 0x170], xmm4
vmovss dword [esp + 0x174], xmm1
vmovlps qword [esp + 0x178], xmm0
test al, al
je 0x10053217
vmovshdup xmm6, xmm0
vucomiss xmm6, dword [esp + 0x164]
jbe 0x10053217
vmovss xmm2, dword [esp + 0x16c]
vucomiss xmm2, xmm1
jbe 0x10053217
vucomiss xmm0, dword [esp + 0x160]
jbe 0x10053217
vmovss xmm0, dword [esp + 0x168]
vucomiss xmm0, xmm4
jbe 0x10053217
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0x240]
push 0x3f800000
push 0
vmovups xmmword [esp + 0x24], xmm4
vmovups xmmword [esp + 0x84], xmm5
vmovups xmmword [esp + 0x38], xmm6
call fcn.1001dab0
add esp, 8
vmovups xmm0, xmmword [esp + 0x1c]
vmovss dword [esp + 0x150], xmm0
vmovups xmm0, xmmword [esp + 0x30]
vmovss dword [esp + 0x154], xmm0
lea edx, [esp + 0x150]
lea edi, [esp + 0x170]
mov ecx, esi
mov esi, dword [esp + 0x48]
push 0x3f800000
push eax
push edx
push edi
call fcn.10037df0
vmovups xmm5, xmmword [esp + 0x7c]
vmovups xmm4, xmmword [esp + 0x1c]
vmovups xmm3, xmmword [esp + 0x10c]
test dword [esp + 0x1fc], 0x4000
jne 0x10053247
mov eax, dword [esp]
vsubss xmm0, xmm5, dword [eax + 0x1934]
vaddss xmm1, xmm4, dword [0x101296d4]
vmovss dword [eax + 0x2f0c], xmm1
vmovss dword [eax + 0x2f10], xmm0
mov edi, esi
cmp byte [esp + 0x60], 0
jne 0x10053267
vmovups xmmword [esp + 0x10c], xmm3
call fcn.10030090
vmovups xmm3, xmmword [esp + 0x10c]
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 4]
je 0x10053324
mov eax, dword [esp]
vmovss xmm0, dword [esp + 0xc]
vaddss xmm0, xmm0, dword [eax + 0x1558]
vmovss dword [esp + 0x150], xmm3
vmovss dword [esp + 0x154], xmm0
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x1b98]
mov byte [ecx + 0x8c], 1
mov eax, dword [eax + 0x1b98]
cmp byte [eax + 0x8f], 0
jne 0x1005331a
mov ecx, dword [eax + 0xd0]
mov edx, dword [eax + 0xd4]
vmovsd xmm1, qword [eax + 0xd0]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], edx
vinsertps xmm0, xmm3, xmm0, 0x10
vaddps xmm0, xmm0, xmm1
vmovlps qword [esp + 0x178], xmm0
lea eax, [esp + 0x150]
push 0xbf800000
push eax
call fcn.1002eb70
add esp, 8
lea eax, [esp + 0x170]
push 0
push 0
push 0
push eax
call fcn.1002ed20
add esp, 0x10
call fcn.1002e9c0
call fcn.10030df0
mov eax, dword [esp]
cmp byte [eax + 0x2f64], 0
setne al
and al, byte [esp + 0x60]
cmp al, 1
jne 0x10053360
push 0x1016b9c7
push 0x1016b9cc
call fcn.10033c40
add esp, 8
lea eax, [esp + 0x158]
push dword [esp + 0x44]
push edi
push eax
call fcn.1001e3b0
add esp, 0xc
vmovss xmm0, dword [esp + 0x1c8]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x100533c9
vmovss xmm0, dword [esp + 0x1b4]
vmovss xmm1, dword [esp + 0x1b8]
mov eax, dword [esp]
vaddss xmm0, xmm0, dword [eax + 0x1558]
vaddss xmm1, xmm1, dword [eax + 0x156c]
sub esp, 0x14
mov eax, dword [esp + 0x1fc]
mov dword [esp + 8], eax
vmovss dword [esp + 4], xmm0
vmovss dword [esp], xmm1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
call fcn.1001e1d0
add esp, 0x14
mov eax, dword [esp + 0x1fc]
shr eax, 0x1b
and eax, 1
mov ecx, dword [esp + 8]
xor cl, 1
or cl, al
jne 0x100533ea
push esi
call fcn.100203f0
add esp, 4
mov eax, dword [esp + 0x1fc]
test al, 0x20
movzx eax, byte [esp + 8]
movzx ebx, byte [esp + 0x10]
cmove ebx, eax
jmp 0x1005069c
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x1005346b
push 1
push ecx
call fcn.1002e330
add esp, 8
cmp dword [esp + 0x18], 0
je 0x10053466
test al, al
je 0x10053466
mov eax, dword [esp + 0xac]
cmp byte [eax], 0
je 0x100535d0
mov ecx, dword [esp + 0x40]
vmovss xmm0, dword [ecx + 0x5c]
mov eax, dword [esp]
vsubss xmm0, xmm0, dword [eax + 0x1934]
vxorps xmm1, xmm1, xmm1
vcmpless xmm1, xmm1, xmm0
vandps xmm0, xmm1, xmm0
sub esp, 8
mov dword [esp], ecx
vmovss dword [esp + 4], xmm0
jmp 0x100534d1
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x10053508
push 1
push ecx
call fcn.1002e330
add esp, 8
cmp dword [esp + 0x18], 0
je 0x10053503
test al, al
je 0x10053503
mov eax, dword [esp + 0xac]
cmp byte [eax], 0
je 0x10053617
call fcn.100316e0
fstp dword [esp + 0x120]
mov ecx, dword [esp + 0x40]
vmovss xmm0, dword [ecx + 0x5c]
mov eax, dword [esp]
vaddss xmm0, xmm0, dword [eax + 0x1934]
vminss xmm0, xmm0, dword [esp + 0x120]
sub esp, 8
vmovss dword [esp + 4], xmm0
mov dword [esp], ecx
call fcn.100316f0
add esp, 8
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x1fc]
mov esi, dword [esp + 4]
vmovups xmm4, xmmword [esp + 0x30]
mov edx, dword [esp + 0x1c]
jmp 0x100524a6
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x48]
test ecx, ecx
js 0x1005355b
push 1
push ecx
call fcn.1002e330
add esp, 8
cmp dword [esp + 0x18], 0
je 0x10053556
test al, al
je 0x10053556
or edi, 0x20000e
mov eax, edi
mov edi, dword [esp + 0x1c]
mov ecx, edi
push eax
call fcn.10053b50
mov edx, edi
vcvtsi2ss xmm0, xmm2, ebp
mov eax, dword [esp]
vmovups xmm1, xmmword [esp + 0xcc]
vfnmadd231ss xmm1, xmm0, dword [eax + 0x1934]
jmp 0x100535ab
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
js 0x100535e9
push 1
push ecx
call fcn.1002e330
add esp, 8
cmp dword [esp + 0x18], 0
je 0x100535e4
test al, al
je 0x100535e4
or edi, 0x20000f
mov eax, edi
mov edi, dword [esp + 0x1c]
mov ecx, edi
push eax
call fcn.10053b50
mov edx, edi
vcvtsi2ss xmm0, xmm2, ebp
mov eax, dword [esp]
vmovups xmm1, xmmword [esp + 0xcc]
vfmadd231ss xmm1, xmm0, dword [eax + 0x1934]
vmovups xmmword [esp + 0xcc], xmm1
jmp 0x10052485
mov ebx, dword [esp + 0x1fc]
cmp byte [esp + 0xc], 0
je 0x100521fc
jmp 0x100521e1
movzx eax, byte [esp + 0x10]
shl eax, 2
or eax, edi
or eax, 0x200002
jmp 0x10052477
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x10053630
push 1
push ecx
call fcn.1002e330
add esp, 8
test al, al
je 0x1005362b
mov eax, dword [esp + 0xac]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x200004
jmp 0x10052477
movzx eax, byte [esp + 0x10]
shl eax, 2
or eax, edi
or eax, 0x200003
jmp 0x10052477
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x10053663
push 1
push ecx
call fcn.1002e330
add esp, 8
test al, al
je 0x1005365e
mov eax, dword [esp + 0xac]
movzx eax, byte [eax]
add eax, eax
or eax, edi
or eax, 0x200005
jmp 0x10052477
mov eax, dword [0x1017f770]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x100536a6
push 1
push ecx
call fcn.1002e330
add esp, 8
test dword [esp + 0x1fc], 0x4000
jne 0x100536a1
test al, al
je 0x100536a1
or edi, 0x200008
mov eax, edi
mov edi, dword [esp + 0x1c]
mov ecx, edi
push eax
call fcn.10053b50
mov edx, edi
jmp 0x10052485
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x60]
test eax, eax
js 0x1005372b
push 1
push eax
call fcn.1002e330
add esp, 8
test dword [esp + 0x1fc], 0x4000
jne 0x1005372b
test al, al
je 0x1005372b
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x40]
cmp eax, dword [ecx + 0x44]
mov ebx, dword [esp + 0x1fc]
mov edi, dword [esp + 0x14]
jne 0x100536fc
mov eax, 0x60000c
cmp byte [esp + 0x4c], 0
je 0x10053862
push eax
call fcn.10053b50
mov ecx, dword [esp + 0x1c]
or esi, 0x200009
push esi
call fcn.10053b50
mov edx, dword [esp + 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov esi, dword [esp + 4]
vmovups xmm4, xmmword [esp + 0x30]
jmp 0x100524aa
mov eax, esi
test al, al
je 0x1005378d
mov al, 1
mov dword [esp + 0x10], eax
cmp dword [esp + 0x18], 0
je 0x10053797
mov eax, dword [esp + 0xac]
movzx eax, byte [eax]
mov esi, dword [esp + 0x1fc]
test esi, 0x800
jne 0x100537c1
test al, al
movzx edx, byte [esp + 0xbc]
mov ecx, 1
cmove ecx, edx
mov dword [esp + 8], 0
test esi, 0x4000
jne 0x1005377d
test al, al
je 0x100537de
mov dword [esp + 0x10], eax
mov dword [esp + 0xbc], ecx
jmp 0x100534e9
test bl, bl
je 0x100537ad
mov al, 1
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov al, 1
mov dword [esp + 0xbc], eax
jmp 0x100534e9
test bh, bh
je 0x1005382c
mov al, 1
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
jmp 0x1005379f
test al, al
je 0x10053797
mov dword [esp + 8], 0
test dword [esp + 0x1fc], 0x4000
jne 0x100534e1
mov dword [esp + 0x170], 0xa
lea ecx, [esp + 0x170]
mov edx, dword [esp + 0x1fc]
push 2
push dword [esp + 0x208]
push dword [esp + 0x208]
call fcn.10055260
add esp, 0xc
test al, al
je 0x100534d9
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x170]
call fcn.10053b50
jmp 0x100534d9
mov ecx, dword [esp + 0x9c]
or cl, byte [esp + 0x50]
cmp cl, 1
jne 0x100538a4
movzx eax, byte [esp + 0x50]
xor eax, 0x20000b
mov esi, dword [esp + 0x1c]
mov ecx, esi
push eax
call fcn.10053b50
mov edx, esi
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
jmp 0x10052485
cmp byte [esp + 8], 0
je 0x100536fc
mov eax, dword [esp]
cmp byte [eax + 0xff], 0
je 0x100536fc
mov eax, dword [esp + 0x68]
cmp byte [eax], 0
jne 0x100536fc
mov eax, dword [esp + 0xac]
cmp byte [eax], 0
jne 0x100536fc
mov eax, 0x600004
jmp 0x100536f2
cmp byte [esp + 0xc], 0
je 0x100538ea
mov eax, dword [0x1017f770]
mov eax, dword [eax + 0x74]
test eax, eax
js 0x100538ea
push 1
push eax
call fcn.1002e330
add esp, 8
test al, al
je 0x100538ea
mov edx, dword [esp + 0x1c]
mov dword [edx + 0x40], 0
mov eax, dword [edx + 4]
mov dword [edx + 0x44], eax
mov dword [edx + 0x3c], eax
mov byte [edx + 0x52], 0
mov byte [edx + 0xe6c], 1
jmp 0x10052485
mov eax, dword [esp + 0x1c]
add eax, 0x3c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xdc]
or al, byte [esp + 0xfc]
cmp al, 1
jne 0x10053937
mov eax, dword [esp]
cmp dword [eax + 0xd4], 0
je 0x10053a37
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x40]
mov ebx, dword [ecx + 0x44]
cmp eax, ebx
jne 0x100539df
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 4]
xor ebp, ebp
jmp 0x100539e7
mov dword [esp + 8], 0
cmp byte [esp + 0x64], 0
je 0x100534e1
call fcn.10020a00
test eax, eax
je 0x100534d9
mov edi, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
add eax, eax
add eax, 2
push eax
call fcn.1001ca90
add esp, 4
mov ebx, eax
cmp byte [edi], 0
je 0x10053ad1
xor esi, esi
lea ebp, [esp + 0x170]
jmp 0x1005398f
cmp byte [edi], 0
je 0x10053aaa
push 0
push edi
push ebp
call fcn.1001c590
add esp, 0xc
cmp dword [esp + 0x170], 0
je 0x10053aaa
add edi, eax
mov ecx, ebp
mov edx, dword [esp + 0x1fc]
push 5
push dword [esp + 0x208]
push dword [esp + 0x208]
call fcn.10055260
add esp, 0xc
test al, al
je 0x10053986
movzx eax, word [esp + 0x170]
mov word [ebx + esi*2], ax
inc esi
jmp 0x10053986
mov ebp, ebx
cmovl ebp, eax
cmovg ebx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x14]
lea ecx, [eax + ebx*2]
lea eax, [eax + ebp*2]
push ecx
push eax
call fcn.1001d120
add esp, 8
mov edi, eax
inc edi
push edi
call fcn.1001ca90
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x14]
lea ecx, [eax + ebx*2]
lea eax, [eax + ebp*2]
push ecx
push eax
push edi
push esi
call fcn.1001d050
add esp, 0x10
push esi
call fcn.10020a30
add esp, 4
push esi
call fcn.1001cac0
add esp, 4
mov dword [esp + 8], 0
cmp byte [esp + 0xfc], 0
je 0x100534e1
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
cmp ecx, eax
jne 0x10053a75
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x40], 0
mov eax, dword [ecx + 4]
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x3c], eax
mov byte [ecx + 0x52], 0
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov byte [edx + 0xe6c], 1
mov dword [esp + 8], 0
cmp ecx, eax
je 0x100534e1
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, dword [esp + 0xc]
call fcn.1005a950
mov edx, esi
mov byte [esi + 0x52], 0
jmp 0x10052485
mov word [ebx + esi*2], 0
test esi, esi
jle 0x10053ad6
mov edi, dword [esp + 0x1c]
mov ecx, edi
mov edx, dword [esp + 0xc]
push esi
push ebx
call fcn.10055410
add esp, 8
mov byte [edi + 0xe6c], 1
jmp 0x10053ad6
mov word [ebx], 0
push ebx
call fcn.1001cac0
add esp, 4
jmp 0x100534d9