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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [0x4287b8]
mov dword [0x421828], 0
test eax, eax
je 0x416326
mov dword [esp + 4], 0x40e250
mov dword [esp], 0xb
call sub.msvcrt.dll_signal
mov edx, 1
mov eax, 0x10
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], str.unknown
mov dword [esp + 0x68], 7
mov dword [esp + 0x6c], 1
call fcn.004194f0
mov edx, dword [esp + 0x60]
mov dword [eax], edx
mov edx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0xc], edx
mov eax, dword [0x4287b8]
test eax, eax
je 0x416330
mov eax, dword [0x4287b4]
test eax, eax
jne 0x416260
mov dword [0x42182c], 0x40dfb0
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
mov dword [esp], 0xfde9
mov dword [0x428740], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
sub esp, 4
mov dword [esp], 0x40dfc0
call fcn.0041b4f0
test eax, eax
jne 0x4162c0
lea edi, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp], 1
call dword [sym.imp.msvcrt.dll__get_osfhandle]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
sub esp, 8
mov eax, dword [esp + 0x80]
test eax, eax
jle 0x415af0
mov esi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esp], 0xfffffff5
call esi
sub esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov dword [esp + 4], 7
mov dword [esp], eax
call ebx
sub esp, 8
mov dword [esp], 0xfffffff4
call esi
sub esp, 4
mov dword [esp + 4], 7
mov dword [esp], eax
call ebx
mov eax, dword [sym.imp.msvcrt.dll__iob]
sub esp, 8
mov dword [esp + 4], 0
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_setbuf
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_setbuf
mov dword [esp + 4], 0x40e0f0
mov dword [esp], 1
call dword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
mov edx, 1
sub esp, 8
mov eax, 1
mov dword [0x428768], 0x423da0
mov dword [0x42876c], 0xc8
mov dword [0x428770], 1
mov dword [0x42875c], 0x423e6c
mov dword [0x428760], 0x24
mov dword [0x428764], 1
mov dword [0x428750], 0x423da0
mov dword [0x428754], 0xc8
mov dword [0x428758], 1
mov dword [0x428784], 0x80000000
mov dword [0x428780], 0x7fffffff
mov dword [0x428748], 0
mov dword [0x42874c], 0x80000000
call fcn.004194f0
mov edx, 1
mov dword [0x426028], eax
mov dword [0x426030], eax
mov dword [0x426034], eax
mov eax, 0xd8
mov dword [0x42602c], 0
mov dword [0x428778], 1
mov dword [0x42877c], 0
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x423e91
mov dword [eax + 4], 2
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x423e94
mov dword [eax + 0x10], 2
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x423e97
mov dword [eax + 0x1c], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0x423e9a
mov dword [eax + 0x28], 2
mov dword [eax + 0x2c], 1
mov dword [eax + 0x30], 0x423e9d
mov dword [eax + 0x34], 2
mov dword [eax + 0x38], 1
mov dword [eax + 0x3c], 0x423ea0
mov dword [eax + 0x40], 2
mov dword [eax + 0x44], 1
mov dword [eax + 0x48], 0x423ea3
mov dword [eax + 0x4c], 2
mov dword [eax + 0x50], 1
mov dword [eax + 0x54], 0x423ea6
mov dword [eax + 0x58], 2
mov dword [eax + 0x5c], 1
mov dword [eax + 0x60], 0x423ea9
mov dword [eax + 0x64], 2
mov dword [eax + 0x68], 1
mov dword [eax + 0x6c], 0x423eac
mov dword [eax + 0x70], 2
mov dword [eax + 0x74], 1
mov dword [eax + 0x78], 0x423eaf
mov dword [eax + 0x7c], 2
mov dword [eax + 0x80], 1
mov dword [eax + 0x84], 0x423eb2
mov dword [eax + 0x88], 2
mov dword [eax + 0x8c], 1
mov dword [eax + 0x90], 0x423eb5
mov dword [eax + 0x94], 2
mov dword [eax + 0x98], 1
mov dword [eax + 0x9c], 0x423eb8
mov dword [eax + 0xa0], 2
mov dword [eax + 0xa4], 1
mov dword [eax + 0xa8], 0x423ebb
mov dword [eax + 0xac], 2
mov dword [eax + 0xb0], 1
mov dword [eax + 0xb4], 0x423ebe
mov dword [eax + 0xb8], 2
mov dword [eax + 0xbc], 1
mov dword [eax + 0xc0], 0x423ec1
mov dword [eax + 0xc4], 2
mov dword [eax + 0xc8], 1
mov dword [eax + 0xcc], 0x423ec4
mov dword [eax + 0xd0], 2
mov dword [eax + 0xd4], 1
mov eax, 0x30
call fcn.004194f0
mov edx, 1
mov dword [eax], 0x423ec7
mov dword [eax + 4], 3
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0x423ecb
mov dword [eax + 0x10], 3
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 0x423ecf
mov dword [eax + 0x1c], 3
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0x423ed3
mov dword [eax + 0x28], 3
mov dword [eax + 0x2c], 1
mov eax, 0x3c
call fcn.004194f0
mov edx, 1
mov dword [eax], str.MMMM
mov dword [eax + 4], 4
mov dword [eax + 8], 1
mov dword [eax + 0xc], str.DDDD
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], str.DDDo
mov dword [eax + 0x1c], 4
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], str.dddd
mov dword [eax + 0x28], 4
mov dword [eax + 0x2c], 1
mov dword [eax + 0x30], str.YYYY
mov dword [eax + 0x34], 4
mov dword [eax + 0x38], 1
mov eax, 0x90
call fcn.004194f0
mov dword [eax], str.January
mov dword [eax + 4], 7
mov dword [eax + 8], 1
mov dword [eax + 0xc], str.February
mov dword [eax + 0x10], 8
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], str.March
mov dword [eax + 0x1c], 5
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], str.April
mov dword [eax + 0x28], 5
mov dword [eax + 0x2c], 1
mov dword [eax + 0x30], 0x423f0d
mov dword [eax + 0x34], 3
mov dword [eax + 0x38], 1
mov dword [eax + 0x3c], str.June
mov dword [eax + 0x40], 4
mov dword [eax + 0x44], 1
mov dword [eax + 0x48], str.July
mov dword [eax + 0x4c], 4
mov dword [eax + 0x50], 1
mov dword [eax + 0x54], str.August
mov dword [eax + 0x58], 6
mov dword [eax + 0x5c], 1
mov dword [eax + 0x60], str.September
mov dword [eax + 0x64], 9
mov dword [eax + 0x68], 1
mov dword [eax + 0x6c], str.October
mov dword [eax + 0x70], 7
mov dword [eax + 0x74], 1
mov dword [eax + 0x78], str.November
mov dword [eax + 0x7c], 8
mov dword [eax + 0x80], 1
mov dword [eax + 0x84], str.December
mov dword [eax + 0x88], 8
mov dword [eax + 0x8c], 1
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
sub esp, 4
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub esp, 4
mov dword [esp], 0
call sub.msvcrt.dll_time
mov dword [esp + 0x80], eax
sar eax, 0x1f
mov dword [esp + 0x84], eax
lea eax, [esp + 0x80]
mov dword [esp], eax
call sub.msvcrt.dll_localtime
imul ecx, dword [0x42877c], 0xf4240
mov eax, 0xf4240
mov ebp, dword [esp + 0x100]
mul dword [0x428778]
add edx, ecx
test ebp, ebp
mov ecx, 0
cmovns ecx, dword [esp + 0x100]
mov dword [0x426020], eax
mov dword [0x426024], edx
mov eax, ecx
mov esi, ecx
cdq
shl esi, 2
shl eax, 4
mov edi, edx
shld edi, ecx, 2
shld edx, ecx, 4
sub eax, esi
sbb edx, edi
test ecx, ecx
mov ebx, eax
mov esi, edx
jle 0x4162a0
mov edi, dword [esp + 0x100]
test edi, edi
jne 0x4162a0
or esi, eax
mov edx, 1
cmove eax, edx
call fcn.0040e4e0
test eax, eax
je 0x416310
mov ebx, dword [esp + 0x100]
xor ecx, ecx
mov edx, eax
test ebx, ebx
jle 0x4161d0
mov ebx, dword [esp + 0x100]
lea esi, [esi]
add ecx, 1
mov dword [edx], 0x423f55
mov dword [edx + 4], 0
mov dword [edx + 8], 1
add edx, 0xc
cmp ebx, ecx
jne 0x4160a0
mov esi, eax
xor ebp, ebp
jmp 0x416158
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
sub esp, 0x20
mov edx, dword [esp + 0x28]
mov byte [ebx + edx], 0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp dword [esp + 0x100], ebp
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
jle 0x41633a
mov dword [esi], ebx
mov dword [esi + 4], eax
add ebp, 1
mov dword [esi + 8], 0
add esi, 0xc
cmp dword [esp + 0x100], ebp
jle 0x4161d0
mov eax, dword [esp + 0x104]
mov edi, dword [eax + ebp*4]
mov dword [esp], edi
call sub.msvcrt.dll_wcslen
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, eax
lea eax, [eax + 1]
sub esp, 0x20
mov dword [esp + 0x28], edx
call fcn.0040e400
test eax, eax
mov ebx, eax
jne 0x4160d0
call fcn.0041d9b9
nop
lea esi, [esi]
lea eax, [esp + 0x30]
call fcn.0040cb30
mov edx, 1
mov eax, 0x30
call fcn.004194f0
mov dword [eax], str..exe
mov dword [eax + 4], 4
mov dword [eax + 8], 1
mov dword [eax + 0xc], str..bat
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], str..cmd
mov dword [eax + 0x1c], 4
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0x423f55
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call fcn.0040bb10
add esp, 0xec
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x42879c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4287b4]
sub esp, 4
mov dword [0x42182c], 0x40dfb0
test eax, eax
je 0x415a13
mov dword [esp], 0x42879c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x415a13
test ebx, ebx
js 0x4163f9
je 0x416310
mov edx, 1
mov eax, ebx
call fcn.004194f0
jmp 0x416078
mov dword [esp + 0x7c], eax
mov eax, 0x10
mov dword [esp + 0x70], str.at_exit_failed
mov dword [esp + 0x74], 0xe
mov dword [esp + 0x78], 1
call fcn.0040e4e0
mov edx, dword [esp + 0x70]
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x7c]
mov dword [eax + 0xc], edx
jmp 0x415a42
mov edx, dword [esp + 0x100]
test edx, edx
jle 0x4161d0
xor eax, eax
jmp 0x4160be
call fcn.00411200
jmp 0x415991
call fcn.00411200
jmp 0x4159fc
lea edi, [esp + 0x80]
xor eax, eax
mov ecx, 0x18
lea edx, [esp + 0x80]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x80], str.array.set:_index_out_of_range__i_
mov dword [esp + 0x84], 0x24
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], 0xfe07
mov dword [esp + 0x90], ebp
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x54]
mov dword [esp + 0xa0], str.__a.len_
mov dword [esp + 0xa4], 0xb
mov dword [esp + 0xa8], 1
mov dword [esp + 0xac], 0xfe07
mov dword [esp + 0xc0], 0x423f89
mov dword [esp + 0xc4], 1
mov dword [esp + 0xc8], 1
call fcn.004197a0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
call fcn.0040e2d0
mov eax, ebx
call fcn.0041d8e0