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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x20c4
call fcn.004c1c60
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [0x4db120]
push esi
push edi
mov dword [esp + 0x24], ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cd83
sub ecx, edx
cmp ecx, 0x7d0
jbe 0x45cdac
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, ebx
call fcn.004b04f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
mov byte [esp + 0x70], 0
mov cl, byte [eax]
test cl, cl
jne 0x45cdf6
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor esi, esi
mov dword [esp + 0x20], 0x400
xor ah, ah
mov dword [esp + 0x10], esi
xor edx, edx
mov dword [esp + 0x18], esi
mov byte [esp + 0xf], 0
mov byte [esp + 0xd], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov byte [esp + 0xe], ah
jmp 0x45ceab
cmp cl, 0x20
je 0x45ce00
cmp cl, 9
jne 0x45ce06
mov cl, byte [eax + 1]
inc eax
jmp 0x45cdf6
push 0xff
push eax
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov dl, byte [esp + 0x7c]
lea esi, [esp + 0x7c]
mov al, dl
mov byte [esp + 0x17b], 0
sub al, 0x30
add esp, 0xc
cmp al, 9
ja 0x45cf1d
test dl, dl
je 0x45ce5f
nop word [eax + eax]
mov ecx, 0x4c98e4
mov al, 0x20
cmp dl, al
je 0x45cf00
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x45ce47
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x45ce40
xor esi, esi
push 0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x74]
call fcn.004ab870
xor edx, edx
mov dword [esp + 0x24], 0x400
add esp, 4
mov dword [esp + 0x10], 0
xor ah, ah
mov dword [esp + 0x18], 0
mov byte [esp + 0xf], 0
mov byte [esp + 0xd], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov byte [esp + 0xe], dl
test esi, esi
jne 0x45cf28
xor esi, esi
mov ecx, dword [ebp + 0xc]
mov edi, dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetDateFormatA]
mov al, byte [ecx]
test al, al
jne 0x45d1a8
xor edx, edx
mov byte [esp + 0xe], 1
xor ecx, ecx
test ah, ah
mov eax, esi
setne dl
or eax, 2
inc edx
cmp byte [esp + 0xf], cl
mov dword [esp + 0x14], edx
cmovne eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
or eax, 2
cmp byte [esp + 0xd], cl
cmovne eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
jmp 0x45d5a8
test esi, esi
je 0x45ce61
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x45cf0b
cmp al, 9
jne 0x45ce61
jmp 0x45cf0b
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor edx, edx
mov dword [esp + 0x20], 0x400
xor ah, ah
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0xf], 0
mov byte [esp + 0xd], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov byte [esp + 0xe], dl
cmp byte [esi], dl
je 0x45cea9
mov dword [esp + 0x20], 0x400
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], edx
mov byte [esp + 0xf], dl
mov byte [esp + 0xd], dl
mov byte [esp + 0xc], dl
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov byte [esp + 0xe], dl
nop word [eax + eax]
mov dword [esp + 0x38], esi
mov edi, esi
test esi, esi
je 0x45cfbb
mov dl, byte [esi]
test dl, dl
je 0x45cfbb
mov ecx, 0x4c98e4
mov al, 0x20
cmp dl, al
je 0x45cfcc
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x45cfa7
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x45cfa0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cfc0
sub ecx, edx
lea edi, [ecx + esi]
mov eax, dword [esp + 0x38]
inc esi
mov bl, byte [edi]
mov byte [edi], 0
movsx eax, byte [eax]
push eax
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbctoupper]
add eax, 0xffffffbc
add esp, 4
cmp eax, 0x10
ja case.0x45cff6.69
movzx eax, byte [eax + 0x45d764]
jmp dword [eax*4 + 0x45d750]
mov byte [esp + 0xf], 1
mov ecx, esi
mov al, byte [ecx]
cmp al, 0x20
je 0x45d00e
cmp al, 9
jne 0x45d011
inc ecx
jmp 0x45d004
test al, al
je 0x45d060
cmp al, 0x2d
je 0x45d01d
cmp al, 0x2b
jne 0x45d024
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x45d060
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x45d033
cmp al, 0x58
jne 0x45d060
movsx eax, byte [ecx + 2]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
add esp, 4
test eax, eax
je 0x45d060
push 0x10
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__strtoi64]
add esp, 0xc
mov dword [esp + 0x3c], edx
or dword [esp + 0x10], eax
jmp case.0x45cff6.69
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
add esp, 4
mov dword [esp + 0x3c], edx
or dword [esp + 0x10], eax
jmp case.0x45cff6.69
mov byte [esp + 0xd], 1
mov ecx, esi
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x45d08a
cmp al, 9
jne 0x45d08d
inc ecx
jmp 0x45d080
test al, al
je 0x45d0dc
cmp al, 0x2d
je 0x45d099
cmp al, 0x2b
jne 0x45d0a0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x45d0dc
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x45d0af
cmp al, 0x58
jne 0x45d0dc
movsx eax, byte [ecx + 2]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
add esp, 4
test eax, eax
je 0x45d0dc
push 0x10
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__strtoi64]
add esp, 0xc
mov dword [esp + 0x3c], edx
or dword [esp + 0x18], eax
jmp case.0x45cff6.69
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
add esp, 4
mov dword [esp + 0x3c], edx
or dword [esp + 0x18], eax
jmp case.0x45cff6.69
mov ah, 1
mov byte [esp + 0xc], ah
jmp 0x45d183
push 0x4cdfc0
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d11b
mov dword [esp + 0x20], 0x800
jmp case.0x45cff6.69
mov ecx, esi
nop dword [eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x45d12a
cmp al, 9
jne 0x45d12d
inc ecx
jmp 0x45d120
test al, al
je 0x45d171
cmp al, 0x2d
je 0x45d139
cmp al, 0x2b
jne 0x45d140
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x45d171
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x45d14f
cmp al, 0x58
jne 0x45d171
movsx eax, byte [ecx + 2]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
add esp, 4
test eax, eax
je 0x45d171
push 0x10
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__strtoi64]
add esp, 0xc
jmp 0x45d17b
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
add esp, 4
mov dword [esp + 0x20], eax
mov ah, byte [esp + 0xc]
mov byte [edi], bl
mov esi, edi
cmp bl, 0x20
je 0x45d191
cmp bl, 9
jne 0x45d197
mov bl, byte [esi + 1]
inc esi
jmp 0x45d187
test bl, bl
jne 0x45cf90
mov esi, dword [esp + 0x10]
jmp 0x45ceab
mov esi, ecx
nop word [eax + eax]
cmp al, 0x20
je 0x45d1b8
cmp al, 9
jne 0x45d1be
mov al, byte [esi + 1]
inc esi
jmp 0x45d1b0
push str.YWeek
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d27c
movzx ecx, word [esp + 0x28]
test cl, 3
jne 0x45d22a
xor edx, edx
mov eax, ecx
mov esi, 0x64
div esi
test edx, edx
jne 0x45d1fb
mov eax, ecx
mov esi, 0x190
div esi
test edx, edx
jne 0x45d22a
movaps xmm0, xmmword [0x4d0b20]
movzx eax, word [esp + 0x2a]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4d0b40]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4d0b60]
movups xmmword [esp + 0x60], xmm0
mov edx, dword [esp + eax*4 + 0x3c]
jmp 0x45d257
movaps xmm0, xmmword [0x4d0b10]
movzx eax, word [esp + 0x2a]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4d0b30]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4d0b50]
movups xmmword [esp + 0x60], xmm0
mov edx, dword [esp + eax*4 + 0x3c]
movzx esi, word [esp + 0x2e]
movzx eax, word [esp + 0x2c]
push eax
lea eax, [edx + esi]
mov edx, ecx
push eax
lea ecx, [esp + 0x178]
call fcn.004ab690
add esp, 8
jmp 0x45d730
push str.YDay
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x45d60e
push str.YDay0
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x45d60e
push str.WDay
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d2fb
mov ebx, dword [esp + 0x24]
movzx esi, word [esp + 0x2c]
inc esi
cmp byte [ebx + 0x17], al
jne 0x45d2cf
mov ebx, dword [ebx + 0xc]
mov al, byte [ebx + 0x15]
test al, 2
je 0x45d2e6
and al, 0x3d
mov byte [ebx + 0x15], al
mov eax, dword [ebx]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov al, byte [ebx + 0x15]
and al, 0x9b
mov dword [ebx], esi
or al, 0x18
mov dword [ebx + 4], 0
mov byte [ebx + 0x15], al
jmp 0x45d6e1
push str.ShortDate
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d32b
mov eax, dword [esp + 0x10]
xor ecx, ecx
and eax, 0xfffffff5
mov dword [esp + 0x14], 2
or eax, 1
mov dword [esp + 0x10], eax
jmp 0x45d5bf
push str.LongDate
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d35b
mov eax, dword [esp + 0x10]
xor ecx, ecx
and eax, 0xfffffff6
mov dword [esp + 0x14], 2
or eax, 2
mov dword [esp + 0x10], eax
jmp 0x45d5bf
push str.YearMonth
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d38b
mov eax, dword [esp + 0x10]
xor ecx, ecx
and eax, 0xfffffffc
mov dword [esp + 0x14], 2
or eax, 8
mov dword [esp + 0x10], eax
jmp 0x45d5bf
push str.Time
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d451
mov eax, dword [esp + 0x18]
xor ecx, ecx
or eax, 2
mov dword [esp + 0x14], 1
cmp byte [esp + 0xd], cl
cmovne eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
push 0xfaa
lea edx, [esp + 0x174]
push edx
push ecx
lea ecx, [esp + 0x34]
push ecx
push eax
push dword [esp + 0x34]
call edi
neg eax
sbb al, al
and byte [esp + 0x170], al
cmp dword [esp + 0x1c], 0
mov dl, byte [esp + 0xe]
jne 0x45d3f8
test dl, dl
je 0x45d730
lea esi, [esp + 0x170]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x45d402
sub esi, ecx
lea eax, [esp + 0x170]
add eax, esi
test dl, dl
je 0x45d425
mov byte [eax], 0x20
inc eax
mov dword [esp + 0x1c], 0
inc esi
mov ecx, 0xfaa
sub ecx, esi
cmp dword [esp + 0x14], 2
push ecx
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x34]
push eax
jne 0x45d5f0
push dword [esp + 0x28]
push dword [esp + 0x34]
call edi
jmp 0x45d5fa
mov eax, dword [ebp + 0xc]
lea esi, [esp + 0x1120]
xor bh, bh
xor bl, bl
mov al, byte [eax]
test al, al
je 0x45d590
mov edi, dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov byte [esp + 0x38], al
cmp al, 0x27
jne 0x45d4ce
test bl, bl
je 0x45d484
xor bl, bl
mov bh, 1
jmp 0x45d56d
test bh, bh
je 0x45d4c0
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 1]
test al, al
je 0x45d4ae
push eax
call edi
test eax, eax
mov eax, dword [ebp + 0xc]
jne 0x45d4b1
cmp byte [eax + 1], 0x27
je 0x45d4b1
test bh, bh
mov bl, 1
sete bh
jmp 0x45d56d
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
test bh, bh
sete bh
jmp 0x45d56d
mov byte [esi], 0x27
inc esi
test bh, bh
sete bh
jmp 0x45d56d
test bh, bh
jne 0x45d56a
push dword [esp + 0x38]
call edi
test eax, eax
je 0x45d55b
test bl, bl
je 0x45d4ea
mov byte [esi], 0x27
inc esi
xor bl, bl
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
push eax
push str.dMyg
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
add esp, 8
test eax, eax
je 0x45d51a
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x45d515
mov dword [esp + 0x14], 2
jmp 0x45d565
cmp ecx, 1
jmp 0x45d548
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
push eax
push str.hHmst
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
add esp, 8
test eax, eax
je 0x45d565
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x45d545
mov dword [esp + 0x14], 1
jmp 0x45d565
cmp ecx, 2
jne 0x45d565
cmp dword [esp + 0x1c], 0
jne 0x45d565
mov byte [esi], 0
inc esi
mov dword [esp + 0x1c], esi
jmp 0x45d565
test bl, bl
jne 0x45d565
mov byte [esi], 0x27
mov bl, 1
inc esi
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [esi], al
inc esi
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
mov al, byte [eax]
mov byte [esp + 0x38], al
test al, al
jne 0x45d473
mov edi, dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
test bl, bl
je 0x45d590
mov byte [esi], 0x27
inc esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetDateFormatA]
lea ecx, [esp + 0x1120]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov byte [esi], 0
test edx, edx
jne 0x45d5b6
mov dword [esp + 0x14], 2
jmp 0x45d5bf
cmp edx, 2
jne 0x45d3c0
push 0xfaa
lea eax, [esp + 0x174]
push eax
push ecx
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x20]
push dword [esp + 0x34]
call ebx
test eax, eax
jne 0x45d3e5
mov byte [esp + 0x170], al
jmp 0x45d3e5
push dword [esp + 0x20]
push dword [esp + 0x34]
call ebx
test eax, eax
jne 0x45d730
mov byte [esp + esi + 0x170], al
jmp 0x45d730
movzx ecx, word [esp + 0x28]
test cl, 3
jne 0x45d663
xor edx, edx
mov eax, ecx
mov edi, 0x64
div edi
test edx, edx
jne 0x45d634
mov eax, ecx
mov ecx, 0x190
div ecx
test edx, edx
jne 0x45d663
movaps xmm0, xmmword [0x4d0b20]
movzx eax, word [esp + 0x2a]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4d0b40]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4d0b60]
movups xmmword [esp + 0x60], xmm0
mov eax, dword [esp + eax*4 + 0x3c]
jmp 0x45d690
movaps xmm0, xmmword [0x4d0b10]
movzx eax, word [esp + 0x2a]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4d0b30]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4d0b50]
movups xmmword [esp + 0x60], xmm0
mov eax, dword [esp + eax*4 + 0x3c]
movzx ecx, word [esp + 0x2e]
push str.YDay
push esi
lea edi, [eax + ecx]
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x45d71a
mov ebx, dword [esp + 0x24]
cmp byte [ebx + 0x17], al
jne 0x45d6b7
mov ebx, dword [ebx + 0xc]
mov cl, byte [ebx + 0x15]
test cl, 2
je 0x45d6d0
and cl, 0x3d
mov byte [ebx + 0x15], cl
mov ecx, dword [ebx]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov cl, byte [ebx + 0x15]
mov eax, edi
and cl, 0x9b
cdq
or cl, 0x18
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov byte [ebx + 0x15], cl
jge 0x45d6fc
mov ecx, ebx
call fcn.004014a0
and byte [ebx + 0x15], 0x8f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x4d9984], 0
je 0x45d70c
mov ecx, ebx
call fcn.004014a0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
lea eax, [esp + 0x174]
push str._03d
push eax
call fcn.00405ed0
add esp, 0xc
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x170]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004b04f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8