Function at 0x424ff0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5326ea
mov eax, dword fs:[0]
push eax
sub esp, 0x414
mov eax, dword [0x579258]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
cmp dword [0x58251c], eax
je 0x425091
push 2
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0xb
push str.InstallType
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov dword [ebp - 4], 0
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov esi, esp
mov ecx, edx
xor eax, eax
mov dword [esi + 0x10], 0
lea edi, [ecx + 2]
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425084
jmp 0x4250fd
push 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x418], esp
push 0xb
push str.InstallType
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov dword [ebp - 4], 1
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov esi, esp
mov ecx, edx
xor eax, eax
mov dword [esi + 0x10], 0
lea edi, [ecx + 2]
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4250f2
sub ecx, edi
sar ecx, 1
push ecx
push edx
mov ecx, esi
call fcn.00416d70
push SysReAllocStringLen
mov dword [ebp - 4], 0xffffffff
call fcn.00418260
add esp, 0x38
lea eax, [ebp - 0x344]
push 0x104
push 0
push eax
call fcn.004ecad0
add esp, 0xc
lea eax, [ebp - 0x344]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x344]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x420], eax
test eax, eax
je 0x425220
inc eax
push eax
call fcn.0046048d
add esp, 4
mov esi, eax
lea eax, [ebp - 0x344]
push esi
push dword [ebp - 0x420]
push dword [ebp - 0x41c]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x425217
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x418]
push eax
push 0x53ee40
push esi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x425217
push 0x104
lea eax, [ebp - 0x240]
push 0
push eax
call fcn.004ecad0
mov edx, dword [ebp - 0x418]
mov ecx, dword [edx + 0xc]
movzx eax, cx
push eax
movzx eax, word [edx + 8]
shr ecx, 0x10
push ecx
push eax
movzx eax, word [edx + 0x12]
push eax
lea eax, [ebp - 0x240]
push 0x53ee44
push eax
call fcn.00428df0
push esi
call fcn.00460496
add esp, 0x28
xor ecx, ecx
nop dword [eax]
mov al, byte [ebp + ecx - 0x240]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x13d], al
test al, al
jne 0x425200
jmp 0x425220
push esi
call fcn.00460496
add esp, 4
lea ecx, [ebp - 0x344]
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3d8], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x3ec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425244
sub ecx, edx
lea eax, [ebp - 0x344]
push ecx
push eax
lea ecx, [ebp - 0x3ec]
call fcn.00404d00
cmp dword [ebp - 0x3d8], 0x10
lea edi, [ebp - 0x3ec]
mov edx, dword [ebp - 0x3ec]
mov eax, dword [ebp - 0x3dc]
cmovae edi, edx
mov dword [ebp - 4], 2
test eax, eax
je 0x42619f
dec eax
or esi, 0xffffffff
cmp eax, esi
mov ecx, esi
cmovb ecx, eax
add ecx, edi
cmp byte [ecx], 0x5c
je 0x4252ae
nop dword [eax]
cmp ecx, edi
je 0x42619f
dec ecx
cmp byte [ecx], 0x5c
jne 0x4252a0
sub ecx, edi
cmp ecx, 0xffffffff
je 0x42619f
mov eax, dword [ebp - 0x3dc]
inc ecx
mov dword [ebp - 0x364], 0
mov dword [ebp - 0x360], 0xf
mov byte [ebp - 0x374], 0
cmp eax, ecx
jb 0x4261ea
sub eax, ecx
mov edi, esi
cmp eax, 0xffffffff
cmovb edi, eax
cmp dword [ebp - 0x3d8], 0x10
lea eax, [ebp - 0x3ec]
cmovae eax, edx
add eax, ecx
mov dword [ebp - 0x418], eax
cmp edi, 0xf
ja 0x42532e
push edi
push eax
lea eax, [ebp - 0x374]
mov dword [ebp - 0x364], edi
push eax
call fcn.004ec550
mov byte [ebp + edi - 0x374], 0
mov edi, dword [ebp - 0x374]
jmp 0x4253a1
cmp edi, 0x7fffffff
ja 0x4261ef
mov eax, edi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x42534d
mov eax, SysReAllocString
jmp 0x425357
mov ecx, 0x16
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x420], eax
lea ecx, [ebp - 0x374]
inc eax
push eax
call fcn.00405420
mov ecx, dword [ebp - 0x420]
push edi
push dword [ebp - 0x418]
mov dword [ebp - 0x41c], eax
push eax
mov dword [ebp - 0x364], edi
mov dword [ebp - 0x360], ecx
call fcn.004ebfd0
mov eax, dword [ebp - 0x41c]
mov byte [eax + edi], 0
mov edi, eax
mov dword [ebp - 0x374], eax
add esp, 0xc
push 0x104
lea eax, [ebp - 0x13c]
push 0
push eax
call fcn.004ecad0
add esp, 0xc
lea ecx, [ebp - 0x374]
cmp dword [ebp - 0x360], 0x10
lea edx, [ebp - 0x13c]
cmovae ecx, edi
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4253d2
mov dword [ebp - 0x394], 0
mov dword [ebp - 0x390], 0xf
mov byte [ebp - 0x3a4], al
sub esp, 0x18
mov byte [ebp - 4], 4
mov edx, esp
lea ecx, [ebp - 0x13c]
lea edi, [ecx + 1]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], al
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425420
sub ecx, edi
lea eax, [ebp - 0x13c]
push ecx
push eax
mov ecx, edx
call fcn.00404d00
lea eax, [ebp - 0x35c]
push eax
call fcn.0043eaf0
mov edi, eax
add esp, 0x1c
lea eax, [ebp - 0x3a4]
cmp eax, edi
je 0x4254d4
mov edx, dword [ebp - 0x390]
cmp edx, 0x10
jb 0x425491
mov ecx, dword [ebp - 0x3a4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x425487
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4261f4
push edx
push ecx
call fcn.00460404
add esp, 8
mov dword [ebp - 0x394], 0
mov dword [ebp - 0x390], 0xf
mov byte [ebp - 0x3a4], 0
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x3a4], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x394], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov edx, dword [ebp - 0x348]
cmp edx, 0x10
jb 0x42550e
mov ecx, dword [ebp - 0x35c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x425504
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4261f4
push edx
push ecx
call fcn.00460404
add esp, 8
sub esp, 0x18
lea ecx, [ebp - 0x3a4]
mov eax, esp
mov dword [ebp - 0x41c], esp
push 0x3a8
push ecx
push eax
call fcn.00428e60
sub esp, 0xc
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 9
push str.Installid
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 6
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425593
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
push SysReAllocStringLen
mov byte [ebp - 4], 4
call fcn.00418050
mov dword [ebp - 0x37c], 0
mov dword [ebp - 0x378], 0xf
mov byte [ebp - 0x38c], 0
add esp, 0x34
mov byte [ebp - 4], 7
mov edx, esp
lea ecx, [ebp - 0x13c]
lea edi, [ecx + 1]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425600
sub ecx, edi
lea eax, [ebp - 0x13c]
push ecx
push eax
mov ecx, edx
call fcn.00404d00
lea eax, [ebp - 0x35c]
push eax
call fcn.0043ff60
mov edi, eax
add esp, 0x1c
lea eax, [ebp - 0x38c]
cmp eax, edi
je 0x4256b0
mov edx, dword [ebp - 0x378]
cmp edx, 0x10
jb 0x42566d
mov ecx, dword [ebp - 0x38c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x425663
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4261f9
push edx
push ecx
call fcn.00460404
add esp, 8
mov dword [ebp - 0x37c], 0
mov dword [ebp - 0x378], 0xf
mov byte [ebp - 0x38c], 0
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x38c], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x37c], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov edx, dword [ebp - 0x348]
cmp edx, 0x10
jb 0x4256ea
mov ecx, dword [ebp - 0x35c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4256e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4261f9
push edx
push ecx
call fcn.00460404
add esp, 8
sub esp, 0x18
lea ecx, [ebp - 0x38c]
mov eax, esp
mov dword [ebp - 0x41c], esp
push 0x3a8
push ecx
push eax
call fcn.00428e60
sub esp, 0xc
mov byte [ebp - 4], 8
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 0xb
push str.installcode
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 9
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425770
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
push SysReAllocStringLen
mov byte [ebp - 4], 7
call fcn.00418050
xor eax, eax
mov dword [ebp - 0x3f4], 0
mov dword [ebp - 0x3f0], 7
mov word [ebp - 0x404], ax
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x35c]
push eax
call fcn.00440c60
lea ecx, [ebp - 0x404]
add esp, 0x54
cmp ecx, eax
je 0x425805
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x404], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3f4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x35c]
call fcn.00419a40
cmp dword [0x582524], 0
jne 0x425a1c
sub esp, 0x18
lea eax, [ebp - 0x404]
mov ecx, esp
mov dword [ebp - 0x41c], esp
push eax
call fcn.004198f0
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 0xe
push str.installversion
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 0xc
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4258a0
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
push SysReAllocStringLen
mov byte [ebp - 4], 0xa
call fcn.00418050
mov edi, 7
mov dword [ebp - 0x34c], 0
xor eax, eax
mov dword [ebp - 0x348], edi
add esp, 0x4c
mov word [ebp - 0x35c], ax
lea eax, [ebp - 0x414]
mov byte [ebp - 4], 0xd
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x40a]
xorps xmm0, xmm0
push eax
movzx eax, word [ebp - 0x40c]
push eax
movzx eax, word [ebp - 0x40e]
push eax
movzx eax, word [ebp - 0x412]
push eax
movzx eax, word [ebp - 0x414]
push eax
push str._04d__02d__02d__02d:_02d
lea eax, [ebp - 0x38]
movq qword [ebp - 0x18], xmm0
push 0x14
push eax
movups xmmword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x28], xmm0
call fcn.00428e30
add esp, 0x20
cmp eax, 5
jl 0x4259de
lea ecx, [ebp - 0x38]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425956
sub ecx, edx
lea eax, [ebp - 0x38]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x35c]
call fcn.00416d70
sub esp, 0x18
lea eax, [ebp - 0x35c]
mov ecx, esp
mov dword [ebp - 0x418], esp
push eax
call fcn.004198f0
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0x41c], esp
push str.installdate
call fcn.004284b0
cmp dword [0x579230], 8
mov eax, 0x57921c
mov byte [ebp - 4], 0xf
cmovae eax, dword [0x57921c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004284b0
push SysReAllocStringLen
mov byte [ebp - 4], 0xd
call fcn.00418050
mov edi, dword [ebp - 0x348]
add esp, 0x4c
mov byte [ebp - 4], 0xa
cmp edi, 8
jb 0x425a1c
mov ecx, dword [ebp - 0x35c]
lea edx, [edi*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x425a12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4261fe
push edx
push ecx
call fcn.00460404
add esp, 8
xor eax, eax
mov dword [ebp - 0x3c4], 0
mov dword [ebp - 0x3c0], 7
mov word [ebp - 0x3d4], ax
sub esp, 0x18
mov byte [ebp - 4], 0x10
mov ecx, esp
mov dword [ebp - 0x41c], esp
push eax
push 0x53e9d0
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 0xe
push str.installversion
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 0x12
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425ad0
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
lea eax, [ebp - 0x35c]
mov byte [ebp - 4], 0x10
push SysReAllocStringLen
push eax
call fcn.00417490
lea ecx, [ebp - 0x3d4]
add esp, 0x50
cmp ecx, eax
je 0x425b38
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x3d4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x35c]
call fcn.00419a40
cmp dword [ebp - 0x3c4], 0
jne 0x425d2d
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ebp - 0x41c], esp
push eax
push 0x53e9d0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 8
push str.UserCode
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 0x14
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425be1
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
lea eax, [ebp - 0x35c]
mov byte [ebp - 4], 0x10
push SysReAllocStringLen
push eax
call fcn.00417490
mov edi, eax
add esp, 0x50
lea eax, [ebp - 0x3d4]
cmp eax, edi
je 0x425c8b
mov edx, dword [ebp - 0x3c0]
cmp edx, 8
jb 0x425c61
mov ecx, dword [ebp - 0x3d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x425c57
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x426203
push edx
push ecx
call fcn.00460404
add esp, 8
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [ebp - 0x3d4], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x3c4], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x35c]
call fcn.00419a40
sub esp, 0x18
cmp dword [ebp - 0x3c4], 0
mov ecx, esp
mov dword [ebp - 0x418], esp
jne 0x425cd5
lea eax, [ebp - 0x404]
push eax
call fcn.004198f0
sub esp, 0x18
mov byte [ebp - 4], 0x17
mov ecx, esp
mov dword [ebp - 0x41c], esp
push str.installversion
call fcn.004284b0
mov byte [ebp - 4], 0x18
jmp 0x425cfe
lea eax, [ebp - 0x3d4]
push eax
call fcn.004198f0
sub esp, 0x18
mov byte [ebp - 4], 0x15
mov ecx, esp
mov dword [ebp - 0x41c], esp
push str.installversion
call fcn.004284b0
mov byte [ebp - 4], 0x16
cmp dword [0x579230], 8
mov eax, 0x57921c
cmovae eax, dword [0x57921c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004284b0
push SysReAllocStringLen
mov byte [ebp - 4], 0x10
call fcn.00418050
add esp, 0x4c
sub esp, 0x18
lea eax, [ebp - 0x404]
mov ecx, esp
mov dword [ebp - 0x41c], esp
push eax
call fcn.004198f0
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
mov dword [ebp - 0x420], esp
xor eax, eax
push 0xa
push str.newversion
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.00416d70
cmp dword [0x579230], 8
mov edx, 0x57921c
mov byte [ebp - 4], 0x1a
cmovae edx, dword [0x57921c]
sub esp, 0x18
mov edi, esp
mov ecx, edx
xor eax, eax
mov word [edi], ax
lea eax, [ecx + 2]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov dword [ebp - 0x418], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425db0
sub ecx, dword [ebp - 0x418]
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.00416d70
push SysReAllocStringLen
mov byte [ebp - 4], 0x10
call fcn.00418050
add esp, 0x4c
mov dword [ebp - 0x3ac], 0
mov dword [ebp - 0x3a8], 0xf
mov byte [ebp - 0x3bc], 0
push 0
push 0x53ef5c
lea ecx, [ebp - 0x374]
mov byte [ebp - 4], 0x1b
call fcn.004288b0
mov ecx, eax
mov dword [ebp - 0x41c], ecx
cmp ecx, 0xffffffff
je 0x425f64
cmp dword [ebp - 0x360], 0x10
lea edi, [ebp - 0x374]
mov edx, dword [ebp - 0x364]
cmovae edi, dword [ebp - 0x374]
test edx, edx
je 0x425eac
push 0x100
lea eax, [ebp - 0x23c]
push 0
push eax
call fcn.004ecad0
mov edx, dword [ebp - 0x364]
add esp, 0xc
mov byte [ebp - 0x20e], 1
lea eax, [edx - 1]
cmp eax, 0xffffffff
cmovb esi, eax
movzx eax, byte [esi + edi]
add esi, edi
mov al, byte [ebp + eax - 0x23c]
test al, al
jne 0x425e94
nop word [eax + eax]
cmp esi, edi
je 0x425ea6
movzx eax, byte [esi - 1]
dec esi
mov al, byte [ebp + eax - 0x23c]
test al, al
je 0x425e80
mov ecx, dword [ebp - 0x41c]
sub esi, edi
cmp ecx, esi
je 0x425f64
jmp 0x425eaf
mov ecx, dword [ebp - 0x41c]
or esi, 0xffffffff
inc ecx
mov dword [ebp - 0x34c], 0
mov dword [ebp - 0x348], 0xf
mov byte [ebp - 0x35c], 0
cmp edx, ecx
jb 0x426208
sub esi, ecx
lea eax, [ebp - 0x374]
sub edx, ecx
cmp edx, esi
cmovb esi, edx
cmp dword [ebp - 0x360], 0x10
push esi
cmovae eax, dword [ebp - 0x374]
add eax, ecx
lea ecx, [ebp - 0x35c]
push eax
call fcn.00404d00
mov edx, dword [ebp - 0x3a8]
cmp edx, 0x10
jb 0x425f39
mov ecx, dword [ebp - 0x3bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x425f2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
cmp dword [ebp - 0x34c], 0x14
movups xmm0, xmmword [ebp - 0x35c]
movups xmmword [ebp - 0x3bc], xmm0
movq xmm0, qword [ebp - 0x34c]
movq qword [ebp - 0x3ac], xmm0
ja 0x425fe4
cmp dword [ebp - 0x3a8], 0x10
lea eax, [ebp - 0x3bc]
push str.update
cmovae eax, dword [ebp - 0x3bc]
push eax
call fcn.004fdb13
add esp, 8
test eax, eax
je 0x425fe4
sub esp, 0x18
lea ecx, [ebp - 0x3bc]
mov eax, esp
mov dword [ebp - 0x418], esp
push 0x3a8
push ecx
push eax
call fcn.00428e60
sub esp, 0xc
mov byte [ebp - 4], 0x1c
mov ecx, esp
mov dword [ebp - 0x41c], esp
push str.usercode
call fcn.004284b0
sub esp, 0x18
mov byte [ebp - 4], 0x1d
mov ecx, esp
push 0x57921c
call fcn.004198f0
push SysReAllocStringLen
mov byte [ebp - 4], 0x1b
call fcn.00418050
add esp, 0x4c
mov edx, dword [ebp - 0x3a8]
cmp edx, 0x10
jb 0x42601e
mov ecx, dword [ebp - 0x3bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x426014
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x3c0]
mov dword [ebp - 0x3ac], 0
mov dword [ebp - 0x3a8], 0xf
mov byte [ebp - 0x3bc], 0
cmp edx, 8
jb 0x426079
mov ecx, dword [ebp - 0x3d4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42606f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x3f0]
cmp edx, 8
jb 0x4260b9
mov ecx, dword [ebp - 0x404]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4260af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x378]
cmp edx, 0x10
jb 0x4260f3
mov ecx, dword [ebp - 0x38c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4260e9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x390]
mov dword [ebp - 0x37c], 0
mov dword [ebp - 0x378], 0xf
mov byte [ebp - 0x38c], 0
cmp edx, 0x10
jb 0x426148
mov ecx, dword [ebp - 0x3a4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42613e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x360]
mov dword [ebp - 0x394], 0
mov dword [ebp - 0x390], 0xf
mov byte [ebp - 0x3a4], 0
cmp edx, 0x10
jb 0x426199
mov ecx, dword [ebp - 0x374]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42618f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42620d
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x3ec]
mov edi, dword [ebp - 0x3d8]
cmp edi, 0x10
jb 0x4261cf
inc edi
mov eax, edx
cmp edi, 0x1000
jb 0x4261c5
mov edx, dword [edx - 4]
add edi, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x426212
push edi
push edx
call fcn.00460404
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00460412
mov esp, ebp
pop ebp
ret
call fcn.00403540
call fcn.00404fc0
call fcn.004f5b2a
call fcn.004f5b2a
call fcn.004f5b2a
call fcn.004f5b2a
call fcn.00403540
call fcn.004f5b2a
call fcn.004f5b2a
int3