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

Disassembly:
push 0xffffffffffffffff
push 0x5c83b7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
push esi
push edi
xor edi, edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x40], edi
call sub.MFC42.DLL_CString::CString_1
mov al, byte [0x63b90c]
mov edx, dword [0x60d638]
mov byte [esp + 0x44], al
mov eax, dword [0x60d634]
xor ecx, ecx
mov ebx, dword [esp + 0x8c]
mov word [esp + 0x45], cx
mov dword [esp + 0x4c], eax
mov eax, dword [0x60d62c]
mov byte [esp + 0x47], cl
mov ecx, dword [0x60d630]
mov dword [esp + 0x58], eax
mov eax, dword [0x60d620]
mov dword [esp + 0x48], edx
mov edx, dword [0x60d628]
mov dword [esp + 0x50], ecx
mov ecx, dword [0x60d624]
mov dword [esp + 0x64], eax
mov eax, dword [0x60d614]
mov dword [esp + 0x54], edx
mov edx, dword [0x60d61c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x60d618]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x60], edx
mov edx, dword [0x60d610]
mov dword [esp + 0x68], ecx
mov ecx, dword [0x60d60c]
cmp eax, edi
mov dword [esp + 0x80], 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x18], edi
jle 0x586fea
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [ebx + 4]
mov byte [esp + 0x80], 2
mov esi, dword [edx + edi*4]
cmp byte [esi], 0
jne 0x586f86
lea edi, [esi + 0x18]
push 0
mov ecx, edi
call sub.MFC42.DLL_CTime::GetLocalTm
lea ebp, [esi + 0x1c]
push 0
mov ecx, ebp
call sub.MFC42.DLL_CTime::GetLocalTm
push 0
mov ecx, edi
call sub.MFC42.DLL_CTime::GetLocalTm
mov eax, dword [eax + 0xc]
push 0
mov ecx, edi
mov dword [esp + 0x24], eax
call sub.MFC42.DLL_CTime::GetLocalTm
mov ebx, dword [eax + 0x10]
push 0
mov ecx, edi
inc ebx
call sub.MFC42.DLL_CTime::GetLocalTm
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push 0
push 0
push 0
add eax, 0x76c
push ecx
push ebx
push eax
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CTime::CTime_1
push 0
mov ecx, ebp
call sub.MFC42.DLL_CTime::GetLocalTm
mov edx, dword [eax + 0xc]
push 0
mov ecx, ebp
mov dword [esp + 0x24], edx
call sub.MFC42.DLL_CTime::GetLocalTm
mov ebx, dword [eax + 0x10]
push 0
mov ecx, ebp
inc ebx
call sub.MFC42.DLL_CTime::GetLocalTm
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push 0
push 0
push 0
add eax, 0x76c
push ecx
push ebx
push eax
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CTime::CTime_1
mov edx, dword [esp + 0x24]
push ecx
mov eax, esp
mov dword [esp + 0x40], esp
lea ecx, [esp + 0x2c]
mov dword [eax], edx
lea eax, [esp + 0x30]
push eax
call fcn.0042e750
mov ecx, dword [esp + 0x2c]
mov eax, 0xc22e4507
imul ecx
add edx, ecx
sar edx, 0x10
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
jne 0x586e60
mov bl, 0x20
jmp 0x586e75
cmp edx, 2
jne 0x586e69
mov bl, 0x2b
jmp 0x586e75
test edx, edx
setge bl
dec ebx
and ebx, 0xfffffffe
add ebx, 0x3e
mov ecx, dword [esp + 0x8c]
mov byte [esp + 0x13], 0x53
mov eax, dword [ecx + 8]
lea edx, [eax - 1]
mov eax, dword [esp + 0x18]
cmp eax, edx
jge 0x586ed2
mov ecx, dword [ecx + 4]
mov edx, dword [ebp]
push ecx
mov eax, dword [ecx + eax*4 + 4]
mov ecx, esp
mov dword [esp + 0x40], esp
mov dword [ecx], edx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [eax + 0x18]
call fcn.0042e750
mov ecx, dword [esp + 0x30]
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
js 0x586ed2
cmp edx, 0x18
jge 0x586ed2
mov byte [esp + 0x13], 0x58
push 0
mov ecx, ebp
call sub.MFC42.DLL_CTime::GetLocalTm
mov ecx, dword [eax + 4]
push 0
mov dword [esp + 0x24], ecx
mov ecx, ebp
call sub.MFC42.DLL_CTime::GetLocalTm
mov edx, dword [eax + 8]
push 0
mov ecx, edi
mov dword [esp + 0x38], edx
call sub.MFC42.DLL_CTime::GetLocalTm
mov eax, dword [eax + 4]
push 0
mov ecx, edi
mov dword [esp + 0x3c], eax
call sub.MFC42.DLL_CTime::GetLocalTm
mov ecx, dword [eax + 8]
push 0
mov dword [esp + 0x40], ecx
mov ecx, edi
call sub.MFC42.DLL_CTime::GetLocalTm
mov ebp, dword [eax + 0x10]
push 0
mov ecx, edi
inc ebp
call sub.MFC42.DLL_CTime::GetLocalTm
movsx ecx, byte [esp + 0x13]
mov edx, dword [esi + 0x20]
mov eax, dword [eax + 0xc]
push edx
mov edx, dword [esi + 0x14]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push ecx
push edx
mov edx, dword [esp + 0x4c]
movsx ecx, bl
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esi + 0x10]
push ecx
lea ecx, [esp + ebp*4 + 0x64]
push edx
mov edx, dword [esi + 0xc]
push ecx
mov ecx, dword [esi + 4]
push eax
mov eax, dword [esi + 8]
push edx
push eax
push ecx
lea edx, [esp + 0x4c]
push str._rS__s__s__s__02d_s__s_02d_02d_c_02d_02d_s0_c__s
push edx
call sub.MFC42.DLL_CString::Format
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0xcc]
add esp, 0x40
jmp 0x586fbb
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
dec eax
cmp edi, eax
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0xc]
push edx
mov edx, dword [esi + 4]
push eax
push ecx
push edx
je 0x586fa9
push str._rO__s___s__s__s0X__s
jmp 0x586fae
push str._rO__s___s__s__s0S__s
lea eax, [esp + 0x2c]
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x1c
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.0059ba4c
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 1
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
mov dword [esp + 0x18], edi
jl 0x586d64
mov esi, dword [esp + 0x88]
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
mov dword [esp + 0x40], 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x80], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x78]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x74
ret