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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4114
call fcn.004cdac0
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [0x4fd218]
push esi
push edi
mov dword [esp + 0x28], ebx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x45c9a3
sub edx, ecx
sar edx, 1
cmp edx, 0x7d0
jbe 0x45c9d2
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, ebx
call fcn.004b5b70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov word [esp + 0x70], ax
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
test cx, cx
jne 0x45ca22
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor eax, eax
mov dword [esp + 0x24], 0x400
xor esi, esi
mov dword [esp + 0x1c], eax
xor edx, edx
mov dword [esp + 0x14], esi
mov byte [esp + 0x13], al
mov byte [esp + 0x10], al
mov byte [esp + 0x12], al
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
mov byte [esp + 0x11], al
jmp 0x45cb03
cmp cx, 0x20
je 0x45ca2e
cmp cx, 9
jne 0x45ca37
movzx ecx, word [eax + 2]
add eax, 2
jmp 0x45ca22
push 0xff
push eax
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor eax, eax
lea esi, [esp + 0x7c]
mov word [esp + 0x27a], ax
add esp, 0xc
mov eax, dword [esp + 0x70]
add eax, 0xffffffd0
cmp ax, 9
ja 0x45cb7c
mov ax, word [esp + 0x70]
test ax, ax
je 0x45cab5
movzx edi, ax
nop word [eax + eax]
mov ecx, 0x4e6614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x45cb58
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x45ca90
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x45ca80
xor esi, esi
push 0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x74]
call fcn.004b0f10
xor eax, eax
mov dword [esp + 0x28], 0x400
xor edx, edx
mov dword [esp + 0x18], 0
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x13], al
mov byte [esp + 0x10], al
mov byte [esp + 0x12], al
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
mov byte [esp + 0x11], al
test esi, esi
jne 0x45cbb7
xor esi, esi
mov edx, dword [ebp + 0xc]
mov edi, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetDateFormatW]
movzx eax, word [edx]
test ax, ax
jne 0x45cce2
xor ecx, ecx
mov byte [esp + 0x11], 1
xor edx, edx
mov eax, esi
cmp byte [esp + 0x12], cl
setne dl
or eax, 2
inc edx
cmp byte [esp + 0x13], cl
mov dword [esp + 0x18], edx
cmovne eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
or eax, 2
cmp byte [esp + 0x10], cl
cmovne eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
jmp 0x45d101
test esi, esi
je 0x45cab7
xor eax, eax
mov word [esi], ax
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
je 0x45cb65
cmp eax, 9
jne 0x45cab7
jmp 0x45cb65
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor eax, eax
mov dword [esp + 0x24], 0x400
xor edx, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov byte [esp + 0x13], al
mov byte [esp + 0x10], al
mov byte [esp + 0x12], al
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
mov byte [esp + 0x11], al
cmp word [esi], 0
je 0x45cb01
mov dword [esp + 0x3c], esi
mov ebx, esi
test esi, esi
je 0x45cc11
movzx eax, word [esi]
test ax, ax
je 0x45cc11
mov edi, eax
nop word [eax + eax]
mov ecx, 0x4e6614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x45cc28
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x45cbf0
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x45cbe0
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45cc16
sub ecx, edx
sar ecx, 1
lea ebx, [esi + ecx*2]
movzx edi, word [ebx]
xor eax, eax
mov word [ebx], ax
add esi, 2
mov eax, dword [esp + 0x3c]
movzx eax, word [eax]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_towupper]
movzx eax, ax
add esp, 4
add eax, 0xffffffbc
cmp eax, 0x10
ja case.0x45cc56.69
movzx eax, byte [eax + 0x45d264]
jmp dword [eax*4 + 0x45d250]
mov ecx, esi
mov byte [esp + 0x13], 1
call fcn.00405520
or dword [esp + 0x14], eax
jmp case.0x45cc56.69
mov ecx, esi
mov byte [esp + 0x10], 1
call fcn.00405520
or dword [esp + 0x1c], eax
jmp case.0x45cc56.69
mov byte [esp + 0x12], 1
jmp case.0x45cc56.69
push 0x4ee94c
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45cca5
mov dword [esp + 0x24], 0x800
jmp case.0x45cc56.69
mov ecx, esi
call fcn.00405520
mov dword [esp + 0x24], eax
mov word [ebx], di
mov esi, ebx
mov ecx, edi
cmp cx, 0x20
je 0x45ccc3
cmp cx, 9
jne 0x45cccc
movzx ecx, word [esi + 2]
add esi, 2
jmp 0x45ccb7
test cx, cx
jne 0x45cbc1
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
jmp 0x45cb03
mov esi, edx
cmp ax, 0x20
je 0x45ccf0
cmp ax, 9
jne 0x45ccf9
movzx eax, word [esi + 2]
add esi, 2
jmp 0x45cce4
push str.YWeek
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45cdb7
movzx ecx, word [esp + 0x2c]
test cl, 3
jne 0x45cd65
xor edx, edx
mov eax, ecx
mov esi, 0x64
div esi
test edx, edx
jne 0x45cd36
mov eax, ecx
mov esi, 0x190
div esi
test edx, edx
jne 0x45cd65
movaps xmm0, xmmword [0x4f3230]
movzx eax, word [esp + 0x2e]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4f3270]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4f3290]
movups xmmword [esp + 0x60], xmm0
mov edx, dword [esp + eax*4 + 0x3c]
jmp 0x45cd92
movaps xmm0, xmmword [0x4f3220]
movzx eax, word [esp + 0x2e]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4f3260]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4f3280]
movups xmmword [esp + 0x60], xmm0
mov edx, dword [esp + eax*4 + 0x3c]
movzx esi, word [esp + 0x32]
movzx eax, word [esp + 0x30]
push eax
lea eax, [esi + edx]
mov edx, ecx
push eax
lea ecx, [esp + 0x278]
call fcn.004b0cb0
add esp, 8
jmp 0x45d230
push str.YDay
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x45d15f
push str.YDay0
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x45d15f
push str.WDay
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45ce1a
movzx eax, word [esp + 0x30]
mov ecx, dword [esp + 0x28]
inc eax
push 0x18
push 0
push eax
call fcn.00401490
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.ShortDate
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45ce4a
mov eax, dword [esp + 0x14]
xor ecx, ecx
and eax, 0xfffffff5
mov dword [esp + 0x18], 2
or eax, 1
mov dword [esp + 0x14], eax
jmp 0x45d118
push str.LongDate
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45ce7a
mov eax, dword [esp + 0x14]
xor ecx, ecx
and eax, 0xfffffff6
mov dword [esp + 0x18], 2
or eax, 2
mov dword [esp + 0x14], eax
jmp 0x45d118
push str.YearMonth
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45ceaa
mov eax, dword [esp + 0x14]
xor ecx, ecx
and eax, 0xfffffffc
mov dword [esp + 0x18], 2
or eax, 8
mov dword [esp + 0x14], eax
jmp 0x45d118
push str.Time
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45cf83
mov eax, dword [esp + 0x1c]
xor ecx, ecx
or eax, 2
mov dword [esp + 0x18], 1
cmp byte [esp + 0x10], cl
cmovne eax, edi
mov dword [esp + 0x1c], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
lea edx, [esp + 0x270]
push 0xfaa
push edx
push ecx
lea ecx, [esp + 0x38]
push ecx
push eax
push dword [esp + 0x38]
call edi
test eax, eax
jne 0x45cf09
mov word [esp + 0x270], ax
cmp dword [esp + 0x20], 0
mov dl, byte [esp + 0x11]
jne 0x45cf1c
test dl, dl
je 0x45d230
lea esi, [esp + 0x270]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x45cf26
sub esi, ecx
lea eax, [esp + 0x270]
sar esi, 1
lea eax, [eax + esi*2]
test dl, dl
je 0x45cf57
mov ecx, 0x20
mov dword [esp + 0x20], 0
mov word [eax], cx
add eax, 2
inc esi
mov ecx, 0xfaa
sub ecx, esi
cmp dword [esp + 0x18], 2
push ecx
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x38]
push eax
jne 0x45d140
push dword [esp + 0x2c]
push dword [esp + 0x38]
call edi
jmp 0x45d14a
mov eax, dword [ebp + 0xc]
lea esi, [esp + 0x21c8]
xor bh, bh
xor bl, bl
movzx eax, word [eax]
test ax, ax
je 0x45d0e7
mov edx, dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
mov ecx, eax
mov edi, dword [sym.imp.VCRUNTIME140.dll_wcschr]
nop dword [eax + eax]
mov eax, 0x27
cmp cx, ax
jne 0x45d00a
test bl, bl
je 0x45cfc7
xor bl, bl
mov bh, 1
jmp 0x45d0c1
test bh, bh
je 0x45cffa
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + 2]
test ax, ax
je 0x45cff4
push eax
call edx
test eax, eax
mov eax, dword [ebp + 0xc]
jne 0x45cff7
cmp word [eax + 2], 0x27
je 0x45cff7
test bh, bh
mov bl, 1
sete bh
jmp 0x45d0bb
mov eax, dword [ebp + 0xc]
mov ax, word [eax]
mov word [esi], ax
add esi, 2
test bh, bh
sete bh
jmp 0x45d0bb
test bh, bh
je 0x45d019
mov word [esi], cx
add esi, 2
jmp 0x45d0c1
push ecx
call edx
test eax, eax
je 0x45d09e
test bl, bl
je 0x45d031
mov eax, 0x27
mov word [esi], ax
add esi, 2
xor bl, bl
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
push eax
push str.dMyg
call edi
add esp, 8
test eax, eax
je 0x45d05d
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x45d058
mov dword [esp + 0x18], 2
jmp 0x45d0af
cmp ecx, 1
jmp 0x45d087
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
push eax
push str.hHmst
call edi
add esp, 8
test eax, eax
je 0x45d0af
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x45d084
mov dword [esp + 0x18], 1
jmp 0x45d0af
cmp ecx, 2
jne 0x45d0af
cmp dword [esp + 0x20], 0
jne 0x45d0af
xor eax, eax
mov word [esi], ax
add esi, 2
mov dword [esp + 0x20], esi
jmp 0x45d0af
test bl, bl
jne 0x45d0af
mov eax, 0x27
mov bl, 1
mov word [esi], ax
add esi, 2
mov eax, dword [ebp + 0xc]
mov ax, word [eax]
mov word [esi], ax
add esi, 2
mov edx, dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
mov eax, dword [ebp + 0xc]
add eax, 2
mov dword [ebp + 0xc], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x45cfb0
test bl, bl
je 0x45d0e7
mov eax, 0x27
mov word [esi], ax
add esi, 2
mov ebx, dword [sym.imp.KERNEL32.dll_GetDateFormatW]
lea ecx, [esp + 0x21c8]
mov edx, dword [esp + 0x18]
xor eax, eax
mov word [esi], ax
mov eax, dword [esp + 0x1c]
test edx, edx
jne 0x45d10f
mov dword [esp + 0x18], 2
jmp 0x45d118
cmp edx, 2
jne 0x45cedd
push 0xfaa
lea eax, [esp + 0x274]
push eax
push ecx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x24]
push dword [esp + 0x38]
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
jmp 0x45cefd
push dword [esp + 0x24]
push dword [esp + 0x38]
call ebx
test eax, eax
jne 0x45d230
mov word [esp + esi*2 + 0x270], ax
jmp 0x45d230
movzx ecx, word [esp + 0x2c]
test cl, 3
jne 0x45d1b4
xor edx, edx
mov eax, ecx
mov edi, 0x64
div edi
test edx, edx
jne 0x45d185
mov eax, ecx
mov ecx, 0x190
div ecx
test edx, edx
jne 0x45d1b4
movaps xmm0, xmmword [0x4f3230]
movzx eax, word [esp + 0x2e]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4f3270]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4f3290]
movups xmmword [esp + 0x60], xmm0
mov eax, dword [esp + eax*4 + 0x3c]
jmp 0x45d1e1
movaps xmm0, xmmword [0x4f3220]
movzx eax, word [esp + 0x2e]
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x4f3260]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [0x4f3280]
movups xmmword [esp + 0x60], xmm0
mov eax, dword [esp + eax*4 + 0x3c]
movzx ecx, word [esp + 0x32]
push str.YDay
push esi
lea edi, [ecx + eax]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x45d21a
mov ecx, dword [esp + 0x28]
mov eax, edi
push 0x18
cdq
push edx
push eax
call fcn.00401490
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
lea eax, [esp + 0x274]
push str._03d
push eax
call fcn.00406890
add esp, 0xc
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x270]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004b5b70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8