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

Disassembly:
sub esp, 0x84
mov eax, dword [0x6651c0]
xor eax, esp
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
push esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
push edi
mov edi, dword [esp + 0x9c]
mov al, byte [esi]
mov byte [esp + 0x3f], al
movzx eax, al
mov dword [esp + 0x48], esi
mov dword [esp + 0x34], edi
movzx eax, byte [eax + 0x657038]
cmp eax, 0x61
ja 0x550069
je 0x54ffed
sub eax, 0x2b
cmp eax, 0xe
ja case.0x54f76d.44
movzx eax, byte [eax + 0x55086c]
jmp dword [eax*4 + 0x550864]
mov dl, byte [esi + 1]
xor ecx, ecx
inc ecx
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ecx
test dl, dl
je 0x54f7e1
lea edi, [esi + 1]
cmp dl, 0x3a
je 0x54f7dd
movzx eax, dl
test byte [eax + 0x657150], 1
jne 0x54f7dd
cmp dl, 0x2d
jne 0x54f7d1
cmp ecx, 5
jne 0x54f7b0
lea eax, [esp + 0x2c]
push eax
push 0x65a6e4
jmp 0x54f7bf
cmp ecx, 6
jne 0x54f7d1
lea eax, [esp + 0x2c]
push eax
push 0x65a6e8
push edi
call fcn.00544415
mov ecx, dword [esp + 0x58]
add esp, 0xc
cmp eax, 1
je 0x54f7dd
inc ecx
mov dword [esp + 0x4c], ecx
mov dl, byte [ecx + esi]
test dl, dl
jne 0x54f789
mov edi, dword [esp + 0x34]
push 1
push ecx
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0055934f
add esp, 0x10
test eax, eax
jle case.0x54f76d.44
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x44], 0xc
cmp byte [eax + esi], 0x2d
jne 0x54fab5
mov cl, byte [esp + 0x3f]
cmp cl, 0x2b
je 0x54f81a
cmp cl, 0x2d
jne case.0x54f76d.44
cmp eax, 5
lea ecx, [esi + 1]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x34]
push eax
jne 0x54f85e
push str.40f_20a_20d
push ecx
call fcn.00544415
add esp, 0x14
cmp eax, 3
je 0x54f876
xor eax, eax
inc eax
mov ecx, dword [esp + 0x88]
pop edi
pop esi
xor ecx, esp
call fcn.0059d866
add esp, 0x84
ret
push str.50f_20a_20d
push ecx
call fcn.00544415
add esp, 0x14
cmp eax, 3
jne case.0x54f76d.44
inc esi
mov dword [esp + 0x48], esi
push 0xc
pop eax
cmp dword [esp + 0x38], eax
jge case.0x54f76d.44
cmp dword [esp + 0x30], 0x1f
jge case.0x54f76d.44
push edi
call fcn.0053c11c
cmp byte [esp + 0x43], 0x2d
lea eax, [edi + 8]
mov edx, dword [eax]
pop ecx
lea ecx, [edi + 0xc]
mov byte [edi + 0x28], 0
mov dword [esp + 0x54], ecx
mov ecx, dword [ecx]
jne 0x54f8c0
mov esi, dword [esp + 0x54]
neg dword [esp + 0x30]
sub ecx, dword [esp + 0x38]
sub edx, dword [esp + 0x2c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x48]
jmp 0x54f8d2
add ecx, dword [esp + 0x38]
lea eax, [edi + 0xc]
add edx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
lea eax, [edi + 8]
mov dword [eax], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], edx
mov dword [eax], ecx
test ecx, ecx
jle 0x54f8f2
lea eax, [ecx - 1]
cdq
idiv dword [esp + 0x44]
mov edx, eax
mov dword [esp + 0x50], edx
jmp 0x54f900
lea eax, [ecx - 0xc]
cdq
idiv dword [esp + 0x44]
mov edx, eax
mov dword [esp + 0x50], eax
imul eax, dword [esp + 0x50], 0xc
add edx, dword [esp + 0x4c]
mov dword [edi + 8], edx
sub ecx, eax
cmp byte [edi + 0x2a], 0
mov dword [esp + 0x50], ecx
mov dword [edi + 0xc], ecx
je 0x54f945
mov eax, dword [edi + 0x10]
mov dword [esp + 0x4c], eax
lea eax, [edx + 0x1269]
cmp eax, 0x3978
jbe 0x54f957
push 0x30
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi + 0x2e], 1
jmp 0x54fa5c
xor eax, eax
mov edx, 0x7d0
inc eax
mov ecx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
cmp byte [edi + 0x29], 0
jne 0x54f92f
lea edi, [edx - 1]
cmp ecx, 2
push 0x64
cmovg edi, edx
add ecx, 0xc
pop esi
mov eax, edi
cdq
idiv esi
cmp dword [esp + 0x50], 2
mov dword [esp + 0x54], eax
cmovg ecx, dword [esp + 0x50]
inc ecx
imul eax, ecx, 0x4ab51
mov ecx, 0x2710
push 0x64
cdq
idiv ecx
lea ecx, [edi + 0x126c]
mov esi, eax
imul eax, ecx, 0x8ead
pop ecx
cdq
idiv ecx
add esi, eax
mov eax, dword [esp + 0x54]
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, eax
mov eax, dword [esp + 0x4c]
sub esi, dword [esp + 0x54]
add eax, 2
add eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
mov edi, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
cmp byte [edi + 0x2b], 0
mov dword [edi], eax
mov dword [edi + 4], ecx
mov byte [edi + 0x28], 1
je 0x54fa58
imul eax, dword [edi + 0x14], 0x3c
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x65f570]
add eax, dword [edi + 0x18]
imul eax, eax, 0xea60
addsd xmm0, qword [0x65f520]
cdq
mov esi, eax
mov dword [esp + 0x54], edx
call fcn.0059dc40
mov ecx, dword [esp + 0x54]
add esi, eax
adc ecx, edx
add esi, dword [esp + 0x50]
mov dword [edi], esi
adc ecx, dword [esp + 0x4c]
cmp byte [edi + 0x2c], 0
mov dword [edi + 4], ecx
je 0x54fa58
imul eax, dword [edi + 0x1c], 0xea60
mov byte [edi + 0x2c], 0
cdq
sub esi, eax
mov dword [edi], esi
sbb ecx, edx
mov dword [edi + 4], ecx
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov edx, 0x5265c00
imul edx
mov word [edi + 0x2a], 0
add dword [edi], eax
adc dword [edi + 4], edx
mov al, byte [esi + 0xb]
test al, al
je 0x550718
movzx eax, al
test byte [eax + 0x657150], 1
je case.0x54f76d.44
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0xc]
push ecx
lea eax, [esi + 0xc]
push str.20c:20e
push eax
mov dword [esp + 0x60], eax
call fcn.00544415
add esp, 0x10
cmp eax, 2
jne case.0x54f76d.44
mov ecx, dword [esp + 0x50]
cmp byte [eax + ecx], 0x3a
jne 0x54fb86
mov esi, ecx
push 0x30
push 0
movzx eax, byte [esi]
mov al, byte [eax + 0x657150]
mov byte [esp + 0x33], al
lea eax, [esp + 0x60]
push eax
call sub.VCRUNTIME140.dll_memset
test byte [esp + 0x37], 4
lea eax, [esp + 0x64]
push eax
lea eax, [esi + 1]
cmovne eax, esi
push eax
call fcn.0054f606
add esp, 0x14
test eax, eax
jne case.0x54f76d.44
lea eax, [esp + 0x58]
push eax
call fcn.0053bcec
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
sub eax, 0x2932e00
pop ecx
push 0
push 0x5265c00
sbb esi, 0
mov dword [esp + 0x5c], eax
push esi
push eax
call fcn.0059d8d0
push 0
push 0x5265c00
push edx
push eax
call fcn.0059da60
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x58], ecx
sbb esi, edx
cmp byte [esp + 0x3f], 0x2d
mov dword [esp + 0x5c], esi
jne 0x54fb62
neg ecx
mov dword [esp + 0x58], ecx
adc esi, 0
neg esi
mov dword [esp + 0x5c], esi
push edi
call fcn.0053bcec
mov eax, dword [esp + 0x5c]
pop ecx
xor ecx, ecx
add dword [edi], eax
mov eax, dword [esp + 0x5c]
adc dword [edi + 4], eax
mov eax, ecx
mov word [edi + 0x2a], cx
mov byte [edi + 0x2c], cl
jmp 0x54f847
add esi, eax
xor ecx, ecx
inc ecx
mov dword [esp + 0x48], esi
movzx eax, byte [esi]
test byte [eax + 0x657150], cl
je 0x54fbaa
inc esi
movzx eax, byte [esi]
test byte [eax + 0x657150], cl
jne 0x54fb9a
mov dword [esp + 0x48], esi
push esi
call fcn.00578223
pop ecx
lea ecx, [eax - 3]
cmp ecx, 7
ja case.0x54f76d.44
movzx ecx, byte [eax + esi - 1]
lea edx, [eax - 1]
cmp byte [ecx + 0x657038], 0x73
cmovne edx, eax
cmp byte [edi + 0x28], 0
mov dword [esp + 0x4c], edx
jne 0x54fd38
cmp byte [edi + 0x2a], 0
je 0x54fc17
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x54], eax
lea eax, [ecx + 0x1269]
mov dword [esp + 0x50], edx
cmp eax, 0x3978
jbe 0x54fc29
push 0x30
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi + 0x2e], 1
jmp 0x54fd34
xor eax, eax
mov ecx, 0x7d0
inc eax
mov edx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
cmp byte [edi + 0x29], 0
jne 0x54fc01
cmp edx, 2
lea edi, [ecx - 1]
push 0x64
cmovg edi, ecx
pop ecx
mov eax, edi
cdq
idiv ecx
push 0x64
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
cmp eax, 2
lea ecx, [eax + 0xc]
cmovg ecx, eax
inc ecx
imul eax, ecx, 0x4ab51
mov ecx, 0x2710
cdq
idiv ecx
lea ecx, [edi + 0x126c]
mov esi, eax
imul eax, ecx, 0x8ead
pop ecx
cdq
idiv ecx
add esi, eax
mov eax, dword [esp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, eax
mov eax, dword [esp + 0x54]
sub esi, dword [esp + 0x40]
add eax, 2
add eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
mov edi, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
cmp byte [edi + 0x2b], 0
mov dword [edi], eax
mov dword [edi + 4], ecx
mov byte [edi + 0x28], 1
je 0x54fd30
imul eax, dword [edi + 0x14], 0x3c
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x65f570]
add eax, dword [edi + 0x18]
imul eax, eax, 0xea60
addsd xmm0, qword [0x65f520]
cdq
mov esi, eax
mov dword [esp + 0x40], edx
call fcn.0059dc40
mov ecx, dword [esp + 0x40]
add esi, eax
adc ecx, edx
add esi, dword [esp + 0x54]
mov dword [edi], esi
adc ecx, dword [esp + 0x50]
cmp byte [edi + 0x2c], 0
mov dword [edi + 4], ecx
je 0x54fd30
imul eax, dword [edi + 0x1c], 0xea60
mov word [edi + 0x2a], 0
mov byte [edi + 0x2c], 0
cdq
sub esi, eax
mov dword [edi], esi
sbb ecx, edx
mov dword [edi + 4], ecx
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
movsd xmm1, qword [esp + 0x20]
xorps xmm0, xmm0
comisd xmm0, xmm1
movsd qword [esp + 0x10], xmm1
jbe 0x54fd57
movsd xmm0, qword [0x65f648]
jmp 0x54fd5f
movsd xmm0, qword [0x65f520]
and dword [esp + 0x48], 0
mov eax, str.second
movsd qword [esp + 0x18], xmm0
xor ecx, ecx
mov dword [esp + 0x50], eax
movzx eax, byte [eax - 1]
cmp eax, edx
jne 0x54fdea
push edx
push esi
push dword [esp + 0x58]
call fcn.00528757
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x50]
jne 0x54fdbd
movss xmm0, dword [eax + 7]
xorps xmm0, xmmword [0x5a64a0]
movsd xmm1, qword [esp + 0x20]
cvtss2sd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x54fdbd
movss xmm0, dword [eax + 7]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm1
ja 0x54fdf0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
add eax, 0x10
inc ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
cmp eax, 0x657e99
jl 0x54fd75
xor eax, eax
inc eax
mov word [edi + 0x2a], 0
mov byte [edi + 0x2c], 0
jmp 0x54f847
mov eax, dword [esp + 0x50]
jmp 0x54fdc5
mov eax, dword [esp + 0x48]
sub eax, 4
je 0x54fe18
sub eax, 1
jne 0x54fe5e
push edi
call fcn.0053c11c
movsd xmm1, qword [esp + 0x24]
cvttsd2si eax, xmm1
pop ecx
add dword [edi + 8], eax
movd xmm0, eax
jmp 0x54fe4c
push edi
call fcn.0053c11c
movsd xmm1, qword [esp + 0x24]
cvttsd2si esi, xmm1
pop ecx
mov ecx, dword [edi + 0xc]
add ecx, esi
lea eax, [ecx - 1]
test ecx, ecx
jg 0x54fe38
lea eax, [ecx - 0xc]
cdq
idiv dword [esp + 0x44]
movd xmm0, esi
add dword [edi + 8], eax
imul eax, eax, 0xc
sub ecx, eax
mov dword [edi + 0xc], ecx
cvtdq2pd xmm0, xmm0
mov byte [edi + 0x28], 0
subsd xmm1, xmm0
movsd qword [esp + 0x10], xmm1
cmp byte [edi + 0x28], 0
jne 0x54fe95
cmp byte [edi + 0x2a], 0
je 0x54fed0
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x10]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x54], edx
lea eax, [ecx + 0x1269]
cmp eax, 0x3978
jbe 0x54fede
push 0x30
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi + 0x2e], 1
mov eax, dword [esp + 0x48]
movsd xmm1, qword [esp + 0x10]
mulsd xmm1, qword [0x65f570]
shl eax, 4
movss xmm0, dword [eax + 0x657e44]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + 0x18]
call fcn.0059dc40
add dword [edi], eax
adc dword [edi + 4], edx
xor eax, eax
jmp 0x54fddb
xor eax, eax
mov ecx, 0x7d0
inc eax
mov esi, eax
mov dword [esp + 0x54], eax
cmp byte [edi + 0x29], 0
jne 0x54fe84
lea edi, [ecx - 1]
cmp esi, 2
push 0x64
cmovg edi, ecx
pop ecx
mov eax, edi
cdq
idiv ecx
cmp esi, 2
lea ecx, [esi + 0xc]
mov dword [esp + 0x40], eax
cmovg ecx, esi
inc ecx
imul eax, ecx, 0x4ab51
mov ecx, 0x2710
push 0x64
cdq
idiv ecx
lea ecx, [edi + 0x126c]
mov esi, eax
imul eax, ecx, 0x8ead
pop ecx
cdq
idiv ecx
add esi, eax
mov eax, dword [esp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, eax
mov eax, dword [esp + 0x54]
sub esi, dword [esp + 0x40]
add eax, 2
add eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
mov edi, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], ecx
cmp byte [edi + 0x2b], 0
mov dword [edi], eax
mov dword [edi + 4], ecx
mov byte [edi + 0x28], 1
je 0x54fe95
imul eax, dword [edi + 0x14], 0x3c
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x65f570]
add eax, dword [edi + 0x18]
imul eax, eax, 0xea60
addsd xmm0, qword [0x65f520]
cdq
mov esi, eax
mov dword [esp + 0x40], edx
call fcn.0059dc40
mov ecx, dword [esp + 0x40]
add esi, eax
adc ecx, edx
add esi, dword [esp + 0x54]
mov dword [edi], esi
adc ecx, dword [esp + 0x44]
cmp byte [edi + 0x2c], 0
mov dword [edi + 4], ecx
je 0x54fe95
imul eax, dword [edi + 0x1c], 0xea60
cdq
sub esi, eax
mov dword [edi], esi
sbb ecx, edx
xor eax, eax
mov dword [edi + 4], ecx
mov word [edi + 0x2a], ax
mov byte [edi + 0x2c], al
jmp 0x54fe95
push str.auto
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
inc eax
cmp dword [esp + 0xa0], eax
jg 0x54f847
xor eax, eax
cmp byte [edi + 0x29], al
je 0x55085b
cmp byte [edi + 0x28], al
jne 0x55085b
movsd xmm1, qword [edi + 0x20]
comisd xmm1, xmmword [0x65f658]
jb 0x54f847
movsd xmm0, qword [0x65f5d0]
comisd xmm0, xmm1
jb 0x54f847
mulsd xmm1, qword [0x65f570]
addsd xmm1, qword [0x65f5d8]
addsd xmm1, qword [0x65f520]
movaps xmm0, xmm1
jmp 0x550345
sub eax, 0x6a
je 0x550822
dec eax
sub eax, 1
je 0x5507ec
sub eax, 7
je 0x55071f
dec eax
sub eax, 1
je 0x5502e2
dec eax
sub eax, 1
jne case.0x54f76d.44
push 8
push str.weekday
push esi
call fcn.00528757
add esp, 0xc
test eax, eax
jne case.0x54f76d.44
add esi, 8
push 1
push esi
call fcn.00578223
pop ecx
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0055934f
add esp, 0x10
test eax, eax
jle case.0x54f76d.44
movsd xmm1, qword [esp + 0x20]
comisd xmm1, xmmword [0x65f4e8]
jb case.0x54f76d.44
movsd xmm0, qword [0x65f530]
comisd xmm0, xmm1
jbe case.0x54f76d.44
cvttsd2si eax, xmm1
mov dword [esp + 0x38], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp case.0x54f76d.44
push edi
call fcn.0053c11c
pop ecx
xor ecx, ecx
mov byte [edi + 0x2c], cl
mov byte [edi + 0x28], cl
cmp byte [edi + 0x2a], cl
je 0x5501e2
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x54], esi
mov esi, dword [edi + 0x10]
lea eax, [edx + 0x1269]
mov dword [esp + 0x44], esi
cmp eax, 0x3978
jbe 0x5501f2
push 0x30
push ecx
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi + 0x2e], 1
mov ecx, dword [edi]
mov esi, 0x5265c00
mov eax, dword [edi + 4]
add ecx, 0x7b98a00
push 0
push esi
adc eax, 0
push eax
push ecx
call fcn.0059d8d0
push 0
push 7
push edx
push eax
call fcn.0059daa0
mov ecx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x38]
cdq
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
cmp eax, edx
jl 0x5501af
jg 0x5501a9
cmp ecx, dword [esp + 0x54]
jbe 0x5501af
add ecx, 0xfffffff9
adc eax, 0xffffffff
push 0
push esi
push eax
push ecx
call fcn.0059da60
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x38]
mov edx, 0x5265c00
imul edx
sub eax, ecx
sbb edx, esi
add dword [edi], eax
adc edx, dword [edi + 4]
xor eax, eax
mov dword [edi + 4], edx
mov word [edi + 0x2a], ax
mov byte [edi + 0x2c], al
jmp 0x54f847
xor eax, eax
mov edx, 0x7d0
inc eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], eax
cmp byte [edi + 0x29], cl
jne 0x550152
mov ecx, dword [esp + 0x54]
lea esi, [edx - 1]
cmp ecx, 2
push 0x64
cmovg esi, edx
pop edi
mov eax, esi
cdq
idiv edi
cmp ecx, 2
mov edi, eax
lea eax, [ecx + 0xc]
cmovg eax, ecx
mov ecx, 0x2710
inc eax
imul eax, eax, 0x4ab51
push 0x64
cdq
idiv ecx
mov ecx, eax
lea eax, [esi + 0x126c]
imul eax, eax, 0x8ead
pop esi
cdq
idiv esi
add ecx, eax
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add ecx, eax
mov eax, dword [esp + 0x44]
sub ecx, edi
add eax, 2
add eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
mov edi, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
cmp byte [edi + 0x2b], 0
mov dword [edi], eax
mov dword [edi + 4], ecx
mov byte [edi + 0x28], 1
je 0x550162
imul eax, dword [edi + 0x14], 0x3c
add eax, dword [edi + 0x18]
imul eax, eax, 0xea60
cdq
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x34]
movsd xmm0, qword [eax + 0x20]
mulsd xmm0, qword [0x65f570]
addsd xmm0, qword [0x65f520]
call fcn.0059dc40
add esi, eax
mov eax, dword [esp + 0x34]
adc edi, edx
add esi, dword [esp + 0x40]
adc edi, dword [esp + 0x54]
mov dword [eax + 4], edi
mov edi, eax
mov dword [eax], esi
jmp 0x550162
push str.unixepoch
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x55035e
cmp byte [edi + 0x29], al
je 0x55035e
inc eax
cmp dword [esp + 0xa0], eax
jg 0x54f847
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x65f570]
addsd xmm0, qword [0x65f5d8]
comisd xmm0, xmmword [0x65f4e8]
jb 0x54f847
movsd xmm1, qword [0x65f5e0]
comisd xmm1, xmm0
jbe 0x54f847
addsd xmm0, qword [0x65f520]
xor eax, eax
mov byte [edi + 0x2c], al
mov dword [edi + 0x28], 1
call fcn.0059dc40
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x550718
push 0x65a6b4
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
push dword [esp + 0x30]
call fcn.0056d40c
pop ecx
test eax, eax
je case.0x54f76d.44
cmp byte [edi + 0x2d], 0
jne 0x550718
and dword [esp + 0x2c], 0
cmp byte [edi + 0x28], 0
jne 0x5503d3
cmp byte [edi + 0x2a], 0
je 0x55049d
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x10]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x54], edx
lea eax, [ecx + 0x1269]
cmp eax, 0x3978
jbe 0x5504ab
push 0x30
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [edi + 0x2e], 1
mov eax, dword [edi]
xorps xmm0, xmm0
mov ecx, dword [edi + 4]
mov edi, eax
movlpd qword [esp + 0x18], xmm0
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], eax
push 0x30
lea eax, [esp + 0x5c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
sub edi, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x3c]
sbb eax, esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x6c], edi
mov byte [esp + 0x94], 1
call fcn.0058cc73
add esp, 0x14
test eax, eax
jne 0x54f847
cmp byte [esp + 0x80], al
jne 0x550490
cmp byte [esp + 0x82], al
je 0x5505bf
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x54], edx
lea eax, [ecx + 0x1269]
mov dword [esp + 0x44], esi
cmp eax, 0x3978
jbe 0x5505d1
push 0x30
lea eax, [esp + 0x5c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
jmp 0x5506cf
xor eax, eax
mov ecx, 0x7d0
inc eax
mov esi, eax
mov dword [esp + 0x54], eax
cmp byte [edi + 0x29], 0
jne 0x5503c2
lea edi, [ecx - 1]
cmp esi, 2
push 0x64
cmovg edi, ecx
pop ecx
mov eax, edi
cdq
idiv ecx
cmp esi, 2
lea ecx, [esi + 0xc]
mov dword [esp + 0x40], eax
cmovg ecx, esi
inc ecx
imul eax, ecx, 0x4ab51
mov ecx, 0x2710
push 0x64
cdq
idiv ecx
lea ecx, [edi + 0x126c]
mov esi, eax
imul eax, ecx, 0x8ead
pop ecx
cdq
idiv ecx
add esi, eax
mov eax, dword [esp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, eax
mov eax, dword [esp + 0x54]
sub esi, dword [esp + 0x40]
add eax, 2
add eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
mov edi, dword [esp + 0x34]
mov ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], ecx
cmp byte [edi + 0x2b], 0
mov dword [edi], eax
mov dword [edi + 4], ecx
mov byte [edi + 0x28], 1
je 0x5503d3
imul eax, dword [edi + 0x14], 0x3c
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x65f570]
add eax, dword [edi + 0x18]
imul eax, eax, 0xea60
addsd xmm0, qword [0x65f520]
cdq
mov esi, eax
mov dword [esp + 0x40], edx
call fcn.0059dc40
mov ecx, dword [esp + 0x40]
add esi, eax
adc ecx, edx
add esi, dword [esp + 0x54]
mov dword [edi], esi
adc ecx, dword [esp + 0x44]
cmp byte [edi + 0x2c], 0
mov dword [edi + 4], ecx
je 0x5503d3
imul eax, dword [edi + 0x1c], 0xea60
mov word [edi + 0x2a], 0
mov byte [edi + 0x2c], 0
cdq
sub esi, eax
mov dword [edi], esi
sbb ecx, edx
mov dword [edi + 4], ecx
jmp 0x5503d3
xor eax, eax
mov ecx, 0x7d0
inc eax
mov edx, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], eax
cmp byte [esp + 0x81], 0
jne 0x55047f
cmp edx, 2
lea esi, [ecx - 1]
push 0x64
cmovg esi, ecx
pop ecx
mov eax, esi
cdq
idiv ecx
mov ecx, dword [esp + 0x54]
cmp ecx, 2
mov edi, eax
push 0x64
lea eax, [ecx + 0xc]
cmovg eax, ecx
mov ecx, 0x2710
inc eax
imul eax, eax, 0x4ab51
cdq
idiv ecx
mov ecx, eax
lea eax, [esi + 0x126c]
imul eax, eax, 0x8ead
pop esi
cdq
idiv esi
add ecx, eax
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add ecx, eax
mov eax, dword [esp + 0x44]
sub ecx, edi
add eax, 2
add eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x65f578]
mulsd xmm0, qword [0x65f5a0]
call fcn.0059dc40
cmp byte [esp + 0x83], 0
mov ecx, eax
mov esi, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], esi
je 0x5506cb
imul ecx, dword [esp + 0x6c], 0x3c
movsd xmm0, qword [esp + 0x78]
mulsd xmm0, qword [0x65f570]
add ecx, dword [esp + 0x70]
imul eax, ecx, 0xea60
addsd xmm0, qword [0x65f520]
cdq
mov esi, eax
mov edi, edx
call fcn.0059dc40
add esi, eax
adc edi, edx
add esi, dword [esp + 0x44]
mov ecx, esi
adc edi, dword [esp + 0x40]
cmp byte [esp + 0x84], 0
mov esi, edi
mov edi, dword [esp + 0x38]
je 0x5506cf
imul eax, dword [esp + 0x74], 0xea60
cdq
sub ecx, eax
sbb esi, edx
jmp 0x5506cf
mov edi, dword [esp + 0x38]
sub ecx, dword [esp + 0x4c]
mov eax, ecx
mov dword [esp + 0x44], ecx
sbb esi, dword [esp + 0x48]
or eax, esi
je 0x5506f5
mov ecx, dword [esp + 0x2c]
mov eax, ecx
inc ecx
mov dword [esp + 0x2c], ecx
cmp eax, 3
jl 0x5503fb
mov esi, dword [esp + 0x34]
push 0x30
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov dword [esi + 4], eax
xor eax, eax
inc eax
mov dword [esi], edi
mov byte [esi + 0x28], al
mov byte [esi + 0x2d], al
xor eax, eax
jmp 0x54f847
push 9
push str.start_of
push esi
call fcn.00528757
add esp, 0xc
test eax, eax
je 0x550761
push str.subsec
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x550759
push str.subsecond
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
xor eax, eax
inc eax
mov byte [edi + 0x2f], al
jmp 0x550718
cmp byte [edi + 0x28], 0
jne 0x550777
cmp byte [edi + 0x2a], 0
jne 0x550777
cmp byte [edi + 0x2b], 0
je case.0x54f76d.44
push edi
call fcn.0053bfe9
xor eax, eax
mov word [edi + 0x2b], 1
mov dword [edi + 0x18], eax
xorps xmm0, xmm0
mov dword [edi + 0x14], eax
movsd qword [edi + 0x20], xmm0
mov word [edi + 0x28], ax
pop ecx
add esi, 9
je case.0x54f76d.44
push str.month
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x5507b5
inc eax
jmp 0x5507ca
push str.year
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne 0x5507d2
inc eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
jmp 0x550718
push 0x65a6e0
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
jmp 0x550718
push str.localtime
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
mov esi, dword [esp + 0x30]
push esi
call fcn.0056d40c
pop ecx
test eax, eax
je case.0x54f76d.44
push esi
push edi
call fcn.0058cc73
pop ecx
pop ecx
jmp 0x54f847
push str.julianday
push esi
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
jne case.0x54f76d.44
inc eax
cmp dword [esp + 0xa0], eax
jg 0x54f847
cmp byte [edi + 0x28], 0
je 0x54f847
cmp byte [edi + 0x29], 0
je 0x54f847
xor eax, eax
mov byte [edi + 0x29], al
jmp 0x54f847