Function at 0x15015e40
Capabilities:
Print debug messages
Terminate process
Write file on windows

Disassembly:
sub esp, 0xea4
mov eax, dword [0x15049cf8]
xor eax, esp
mov dword [esp + 0xea0], eax
cmp dword [0x1504c004], 0
mov eax, dword [esp + 0xeb4]
push ebx
mov ebx, dword [esp + 0xeb0]
mov dword [esp + 8], eax
je 0x15015e8a
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xea0]
xor ecx, esp
call fcn.1503831e
add esp, 0xea4
ret 0x18
cmp dword [0x1504bfd4], 0
jne 0x15015e70
mov dword [0x1504bfd4], 1
call sym.Storm.dll_Ordinal_546
push 0x104
lea ecx, [esp + 0x3a0]
push ecx
push 0
mov byte [esp + 0x3a8], 0
mov byte [esp + 0x2a4], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x140
lea edx, [esp + 0x5c]
push 0
push edx
call sub.MSVCR80.dll_memset
add esp, 0xc
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x3a0]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
test eax, eax
je 0x15015ef9
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x104
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x2a0]
push eax
call sym.Storm.dll_Ordinal_501
mov dl, 0x2e
lea ecx, [esp + 0x298]
call sym.Storm.dll_Ordinal_570
test eax, eax
je 0x15015f36
mov dl, 0x2e
lea ecx, [esp + 0x298]
call sym.Storm.dll_Ordinal_570
mov byte [eax], 0
push ebp
mov ebp, dword [esp + 0xeb0]
push esi
push 0x100
lea ecx, [esp + 0x1a4]
push ecx
push ebp
mov byte [esp + 0x1ac], 0
call sym.Storm.dll_Ordinal_462
cmp byte [esp + 0x1a0], 0
jne 0x15015f86
movzx edx, bp
push ebp
push edx
xor esi, esi
call fcn.15014cd0
push eax
lea eax, [esp + 0x1ac]
push 0x100
push eax
call sym.Storm.dll_Ordinal_578
add esp, 0x14
test ebx, ebx
push edi
mov edi, dword [esp + 0xec0]
mov dword [esp + 0x20], ebx
je 0x15015fc1
cmp byte [ebx], 0
je 0x15015fc1
cmp edi, 0xfffffffe
je 0x15015fa5
cmp edi, 0xfffffffd
jne 0x15015fc1
push 0x100
push ebx
lea esi, [esp + 0xdb8]
call fcn.15015a40
test eax, eax
je 0x15015fc1
mov ebx, esi
mov dword [esp + 0x20], ebx
test ebx, ebx
lea esi, [esp + 0x4ac]
je 0x15015fe1
push 0x800
push ebx
mov ecx, esi
push ecx
call sym.Storm.dll_Ordinal_501
lea esi, [esp + eax + 0x4ac]
test edi, edi
jle 0x15016006
push edi
lea edx, [esp + 0xcb0]
push str.__u_
sub edx, esi
push edx
push esi
call sym.Storm.dll_Ordinal_578
add esp, 0x10
push esi
call sym.Storm.dll_Ordinal_506
add esi, eax
movzx eax, bp
push eax
lea ecx, [esp + 0xcb0]
push str._:_error__u:
sub ecx, esi
push ecx
push esi
call sym.Storm.dll_Ordinal_578
add esp, 0x10
push esi
call sym.Storm.dll_Ordinal_506
add esi, eax
lea edx, [esp + 0xcac]
sub edx, esi
push edx
lea eax, [esp + 0x1a8]
push eax
push esi
call sym.Storm.dll_Ordinal_501
lea ecx, [esp + 0x4ac]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x100
push 0x1504c1a0
push 0x5101
call sym.Storm.dll_Ordinal_302
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push eax
call esi
test eax, eax
mov eax, 0x1504c1a0
jne 0x1501607b
mov eax, dword [str.This_application_has_encountered_a_critical_error:_n_n_s_n]
lea edx, [esp + 0x1a4]
push edx
push eax
lea eax, [esp + 0x4b4]
push 0x800
push eax
call sym.Storm.dll_Ordinal_578
add esp, 0x10
lea ecx, [esp + 0x4ac]
push ecx
call sym.Storm.dll_Ordinal_506
push 0x100
push 0x1504c1a0
push 0x5102
lea ebp, [esp + eax + 0x4b8]
call sym.Storm.dll_Ordinal_302
push eax
call esi
test eax, eax
mov eax, 0x1504c1a0
jne 0x150160d2
mov eax, dword [str.Program:_t_s_n]
lea edx, [esp + 0x3a8]
push edx
push eax
lea eax, [esp + 0xcb4]
sub eax, ebp
push eax
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
push ebp
call sym.Storm.dll_Ordinal_506
add ebp, eax
test ebx, ebx
je 0x150161d0
cmp byte [ebx], 0
je 0x150161d0
lea eax, [edi + 5]
cmp eax, 4
ja case.default.0x15016113
jmp dword [eax*4 + 0x15016658]
mov esi, 4
push ebx
call fcn.15014cd0
push eax
lea ecx, [esp + 0xcb4]
sub ecx, ebp
push ecx
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
jmp 0x150161c8
push ebx
mov esi, 5
call fcn.15014cd0
push eax
lea edx, [esp + 0xcb4]
sub edx, ebp
push edx
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
jmp 0x150161c8
push ebx
mov esi, 6
call fcn.15014cd0
push eax
lea eax, [esp + 0xcb4]
sub eax, ebp
push eax
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
jmp 0x150161c8
mov esi, 0xb
jmp 0x1501611f
push ebx
mov esi, 0xe
call fcn.15014cd0
push eax
lea edx, [esp + 0xcb4]
sub edx, ebp
push edx
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
jmp 0x150161c8
push edi
push ebx
mov esi, 3
call fcn.15014cd0
push eax
lea eax, [esp + 0xcb8]
sub eax, ebp
push eax
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x14
push ebp
call sym.Storm.dll_Ordinal_506
add ebp, eax
cmp dword [esp + 0xeb8], 0x85100000
mov eax, dword [esp + 0x14]
jne 0x15016202
test eax, eax
jne 0x150161ea
mov eax, 0x150415ff
push eax
mov esi, 7
call fcn.15014cd0
lea ecx, [esp + 0xcb0]
push eax
sub ecx, ebp
push ecx
jmp 0x15016221
test eax, eax
jne 0x1501620b
mov eax, 0x150415ff
push eax
mov esi, 8
call fcn.15014cd0
lea edx, [esp + 0xcb0]
push eax
sub edx, ebp
push edx
push ebp
call sym.Storm.dll_Ordinal_578
add esp, 0x10
push ebp
call sym.Storm.dll_Ordinal_506
xor edi, edi
add ebp, eax
cmp dword [0x15057710], edi
jne 0x150163fd
call fcn.15002890
push 0x1504bfbc
call fcn.15014db0
mov esi, dword [0x1504bfb8]
push 0x1504bfbc
mov dword [esp + 0x14], esi
mov dword [0x1504bfb8], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, edi
je 0x15016273
mov ebx, dword [esi + 4]
jmp 0x15016275
xor ebx, ebx
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x30
lea ecx, [esp + 0x28]
push edi
push ecx
call sub.MSVCR80.dll_memset
mov edx, dword [0x1504c198]
add esp, 0xc
cmp esi, edi
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], edx
je 0x150162b9
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
jmp 0x150162c1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
push 8
lea ecx, [esp + 0x38]
push ecx
xor ecx, ecx
test ebx, ebx
sete cl
mov edx, ebx
call fcn.15002bb0
push 0x104
push 0x150433c0
push str.CrashSummaries
lea esi, [esp + 0xcb8]
xor edi, edi
call fcn.15014fd0
push edi
push 0x80
push 4
push edi
push 3
push 0x40000000
mov edx, esi
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x1501633e
push 2
push edi
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x15016337
push edi
lea eax, [esp + 0x1c]
push eax
push 0x30
lea ecx, [esp + 0x30]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
mov edi, str.Crash
jne 0x1501634c
mov edi, str.Error
lea edx, [esp + 0x4ac]
push edx
lea edx, [esp + 0x58]
mov ecx, edi
call fcn.15015120
mov esi, eax
cmp esi, 0xffffffff
je 0x15016389
push ebx
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
push ebx
push esi
mov edx, 0x15014e60
mov ecx, 0x40001
call fcn.15002a20
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.15002ea0
test eax, eax
je 0x150163f6
cmp dword [0x1504c194], 0
jne 0x150163f6
push 0x104
push 0x1504358c
push edi
lea esi, [esp + 0x70]
lea edi, [esp + 0x60]
call fcn.15014fd0
push 0
push 0x80
push 2
push 0
push 3
push 0x40000000
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x150163f6
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push 1
mov ecx, esi
mov dword [esp + 0x24], 0x1504c010
call fcn.15002e10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.150028a0
xor edi, edi
call fcn.15014e20
test eax, eax
je 0x15016474
cmp dword [esp + 0xec8], edi
je 0x15016445
lea edx, [esp + 0xcac]
sub edx, ebp
push edx
mov esi, 0xd
call fcn.15014cd0
push eax
push ebp
call sym.Storm.dll_Ordinal_501
lea ebx, [esi + 0x23]
mov esi, 0x103
lea ebp, [ebx - 0x29]
lea edi, [ebx - 0x2e]
mov dword [esp + 0x10], 6
jmp 0x150164d9
lea eax, [esp + 0xcac]
sub eax, ebp
push eax
mov esi, 0xc
call fcn.15014cd0
push eax
push ebp
call sym.Storm.dll_Ordinal_501
mov esi, 0x104
mov ebp, 7
mov dword [esp + 0x10], 6
jmp 0x150164d4
cmp dword [esp + 0xec8], edi
je 0x150164b0
lea ecx, [esp + 0xcac]
sub ecx, ebp
push ecx
mov esi, 0xa
call fcn.15014cd0
push eax
push ebp
call sym.Storm.dll_Ordinal_501
lea ebx, [esi + 0x26]
mov esi, 0x101
lea ebp, [ebx - 0x2e]
lea edi, [ebx - 0x2f]
mov dword [esp + 0x10], 0
jmp 0x150164d9
lea edx, [esp + 0xcac]
sub edx, ebp
push edx
mov esi, 9
call fcn.15014cd0
push eax
push ebp
call sym.Storm.dll_Ordinal_501
xor esi, esi
lea ebp, [esi + 1]
mov dword [esp + 0x10], esi
xor edi, edi
lea ebx, [edi + 0x10]
push 0x150495b0
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test eax, eax
jne 0x15016500
push 0x1504bfd8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x1504bfbc
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x1501650b
push 0x150495b0
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push 0x1504bfd8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
or esi, ebx
or esi, 0x52000
test edi, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
jne 0x1501652e
mov dword [esp + 0x1c], ebp
mov eax, dword [0x150495bc]
xor ebx, ebx
test eax, eax
setle bl
sub ebx, 1
and ebx, eax
test ebx, ebx
jle 0x15016580
mov esi, dword [esp + 0xec0]
mov ebp, dword [esp + 0x20]
mov edi, edi
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1501655d
mov eax, 0x150415ff
mov ecx, dword [esp + 0xeb8]
mov edx, dword [ebx + 8]
push eax
push esi
push ebp
lea eax, [esp + 0x1b0]
push eax
push ecx
call edx
test eax, eax
je 0x150165c5
mov ebx, dword [ebx + 4]
test ebx, ebx
jg 0x15016550
call sym.Storm.dll_Ordinal_518
mov ebx, eax
xor ebp, ebp
cmp ebx, ebp
je 0x150165a5
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x150165a3
push ebx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x150165a5
xor ebx, ebx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x2a8]
push ecx
lea edx, [esp + 0x4b4]
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esi, eax
jmp 0x150165cb
mov esi, dword [esp + 0x1c]
xor ebp, ebp
push 0x1504bfd8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, dword [esp + 0x10]
jne 0x150165e8
call fcn.15014d50
mov eax, 1
jmp 0x15016635
cmp esi, edi
je 0x150165e1
mov dword [0x1504c004], 1
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
jns 0x15016622
lea eax, [esp + 0x18]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x15016622
cmp dword [esp + 0x18], 0x103
jne 0x15016633
mov ecx, dword [esp + 0xecc]
push ecx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
xor eax, eax
mov ecx, dword [esp + 0xeb0]
pop edi
pop esi
mov dword [0x1504bfd4], ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.1503831e
add esp, 0xea4
ret 0x18