Function at 0x10037e7
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x258
mov eax, dword [0x1008010]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x248], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x230], eax
xor eax, eax
mov edi, 0x80
xor esi, esi
push edi
mov word [ebp - 0x88], ax
lea eax, [ebp - 0x86]
push esi
push eax
mov dword [ebp - 0x22c], esi
call sub.msvcrt.dll_memset
push 0x118
lea eax, [ebp - 0x224]
push esi
push eax
mov dword [ebp - 0x228], esi
call sub.msvcrt.dll_memset
xor eax, eax
push edi
mov word [ebp - 0x10c], ax
lea eax, [ebp - 0x10a]
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0x24
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x234], esi
mov dword [ebp - 0x254], 0x1001504
mov dword [ebp - 0x250], 0x10014e8
mov dword [ebp - 0x24c], 0x10014c4
mov ebx, 0x10012c0
cmp dword [ebp - 0x240], esi
je 0x10038b7
cmp dword [ebp - 0x248], esi
je 0x10038b7
cmp dword [ebp - 0x230], esi
jne 0x10038df
mov esi, 0x80070057
mov eax, dword [section..data]
cmp eax, section..data
je 0x100424f
test byte [eax + 0x1c], 1
je 0x1004213
push esi
push ebx
push 0x3c
jmp 0x100419b
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x244], eax
cmp eax, esi
jne 0x100392d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jle 0x1003904
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
jge 0x100392d
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x3d
jmp 0x100419b
push 0x802
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x23c], eax
test eax, eax
jne 0x1003973
mov esi, 0x8007000e
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x3e
jmp 0x100419b
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x401
push dword [ebp - 0x23c]
push 0x1b59
push dword [ebp - 0x244]
call esi
test eax, eax
jne 0x10039d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x10039a9
and eax, 0xffff
or eax, 0x80070000
mov ecx, eax
test ecx, ecx
jge 0x10039d0
mov eax, dword [section..data]
cmp eax, section..data
je 0x10039d0
test byte [eax + 0x1c], 1
je 0x10039d0
push ecx
push ebx
push 0x3f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010019d0
push 0x41
lea eax, [ebp - 0x10c]
push eax
push 0x1b58
push dword [ebp - 0x244]
call esi
test eax, eax
jne 0x1003a25
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x10039fe
and eax, 0xffff
or eax, 0x80070000
mov ecx, eax
test ecx, ecx
jge 0x1003a25
mov eax, dword [section..data]
cmp eax, section..data
je 0x1003a52
test byte [eax + 0x1c], 1
je 0x1003a2a
push ecx
push ebx
push 0x40
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010019d0
mov eax, dword [section..data]
cmp eax, section..data
je 0x1003a52
test byte [eax + 0x1c], 8
je 0x1003a52
push dword [ebp - 0x23c]
lea ecx, [ebp - 0x10c]
push ecx
push ebx
push 0x41
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01001896
call fcn.01002d43
mov esi, 0x894
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x234], eax
test eax, eax
jne 0x1003a9e
mov esi, 0x8007000e
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x42
jmp 0x100419b
push esi
push 0
push dword [ebp - 0x234]
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x234]
add esp, 0xc
lea ecx, [ebp - 0x10c]
push ecx
mov dword [eax], esi
push edi
add eax, 0x88
push eax
call fcn.01002eaa
mov esi, eax
test esi, esi
je 0x1003aff
cmp esi, 0x8007007a
je 0x1003aff
test esi, esi
jge 0x1003aff
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x43
jmp 0x100419b
mov eax, dword [ebp - 0x234]
add eax, 0x188
cmp dword [ebp + 0x10], 0
jne 0x1003b18
push dword [ebp - 0x230]
jmp 0x1003b1b
push dword [ebp + 0x10]
push edi
push eax
call fcn.01002eaa
mov esi, eax
test esi, esi
je 0x1003b57
cmp esi, 0x8007007a
je 0x1003b57
test esi, esi
jge 0x1003b57
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x44
jmp 0x100419b
push dword [ebp - 0x23c]
mov eax, dword [ebp - 0x234]
push 0x200
add eax, 0x490
push eax
call fcn.01002eaa
mov esi, eax
test esi, esi
je 0x1003ba8
cmp esi, 0x8007007a
je 0x1003ba8
test esi, esi
jge 0x1003ba8
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x45
jmp 0x100419b
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x228], 0x11c
sete al
dec al
and al, 2
mov byte [ebp - 0x235], al
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x1003c13
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1003be8
and eax, 0xffff
or eax, 0x80070000
mov ecx, eax
test ecx, ecx
jge 0x1003c13
mov eax, dword [section..data]
mov edi, section..data
cmp eax, edi
je 0x1003c18
test byte [eax + 0x1c], 1
je 0x1003c18
push ecx
push ebx
push 0x46
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010019d0
jmp 0x1003c18
mov edi, section..data
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x234]
movzx eax, byte [ebp - 0x235]
push 0
push dword [ebp + eax*4 - 0x254]
call sub.wer.dll_WerReportCreate
mov esi, eax
test esi, esi
jge 0x1003c60
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x47
jmp 0x100419b
push dword [ebp - 0x230]
push 0
push 0
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x1003c9b
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x48
jmp 0x100419b
mov eax, dword [ebp + 0x20]
movzx ecx, ax
push ecx
shr eax, 0x10
push eax
mov eax, dword [ebp + 0x1c]
movzx ecx, ax
push ecx
shr eax, 0x10
push eax
push 0x10014ac
lea eax, [ebp - 0x88]
push 0x41
push eax
call fcn.01002f19
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x1003cf9
cmp esi, 0x8007007a
je 0x1003cf9
test esi, esi
jge 0x1003cf9
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x49
jmp 0x100419b
lea eax, [ebp - 0x88]
push eax
push 0
push 1
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x1003d35
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x4a
jmp 0x100419b
movzx eax, word [ebp - 0x112]
push eax
movzx eax, word [ebp - 0x114]
push eax
push dword [ebp - 0x218]
lea eax, [ebp - 0x88]
push dword [ebp - 0x21c]
push dword [ebp - 0x220]
push dword [ebp - 0x224]
push 0x1001488
push 0x41
push eax
call fcn.01002f19
mov esi, eax
add esp, 0x24
test esi, esi
je 0x1003da5
cmp esi, 0x8007007a
je 0x1003da5
test esi, esi
jge 0x1003da5
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x4b
jmp 0x100419b
lea eax, [ebp - 0x88]
push eax
push 0
push 2
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x1003de1
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x4c
jmp 0x100419b
mov eax, dword [section..data]
mov esi, dword [ebp + 0x28]
cmp eax, edi
je 0x1003e3c
test byte [eax + 0x1c], 8
je 0x1003e3c
and dword [ebp - 0x230], 0
mov ecx, dword [ebp + 0x24]
mov edx, esi
test esi, esi
ja 0x1003e08
cmp ecx, 1
jbe 0x1003e1f
inc dword [ebp - 0x230]
shrd ecx, edx, 1
shr edx, 1
test edx, edx
ja 0x1003e08
jb 0x1003e1f
cmp ecx, 1
ja 0x1003e08
push dword [ebp - 0x230]
push esi
push dword [ebp + 0x24]
push ebx
push 0x4d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01001864
mov edi, section..data
mov eax, dword [ebp + 0x24]
xor edx, edx
mov ecx, esi
test esi, esi
ja 0x1003e4c
cmp eax, 1
jbe 0x1003e5e
shrd eax, ecx, 1
shr ecx, 1
inc edx
test ecx, ecx
ja 0x1003e4c
jb 0x1003e5e
cmp eax, 1
ja 0x1003e4c
push edx
push 0x1001480
lea eax, [ebp - 0x88]
push 0x41
push eax
call fcn.01002f19
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1003ea7
cmp esi, 0x8007007a
je 0x1003ea7
test esi, esi
jge 0x1003ea7
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x4e
jmp 0x100419b
lea eax, [ebp - 0x88]
push eax
push 0
push 3
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x1003ee3
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x4f
jmp 0x100419b
mov eax, dword [section..data]
mov esi, dword [ebp + 0x30]
cmp eax, edi
je 0x1003f3e
test byte [eax + 0x1c], 8
je 0x1003f3e
and dword [ebp - 0x230], 0
mov ecx, dword [ebp + 0x2c]
mov edx, esi
test esi, esi
ja 0x1003f0a
cmp ecx, 1
jbe 0x1003f21
inc dword [ebp - 0x230]
shrd ecx, edx, 1
shr edx, 1
test edx, edx
ja 0x1003f0a
jb 0x1003f21
cmp ecx, 1
ja 0x1003f0a
push dword [ebp - 0x230]
push esi
push dword [ebp + 0x2c]
push ebx
push 0x50
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01001864
mov edi, section..data
mov eax, dword [ebp + 0x2c]
xor edx, edx
mov ecx, esi
test esi, esi
ja 0x1003f4e
cmp eax, 1
jbe 0x1003f60
shrd eax, ecx, 1
shr ecx, 1
inc edx
test ecx, ecx
ja 0x1003f4e
jb 0x1003f60
cmp eax, 1
ja 0x1003f4e
push edx
push 0x1001480
lea eax, [ebp - 0x88]
push 0x41
push eax
call fcn.01002f19
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1003fa9
cmp esi, 0x8007007a
je 0x1003fa9
test esi, esi
jge 0x1003fa9
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x51
jmp 0x100419b
lea eax, [ebp - 0x88]
push eax
push 0
push 4
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x1003fe5
mov eax, dword [section..data]
cmp eax, edi
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x52
jmp 0x100419b
mov eax, dword [section..data]
mov esi, dword [ebp + 0x38]
mov edi, dword [ebp + 0x34]
cmp eax, section..data
je 0x1004034
test byte [eax + 0x1c], 8
je 0x1004034
xor ebx, ebx
mov ecx, edi
mov edx, esi
test esi, esi
ja 0x100400c
cmp edi, 1
jbe 0x100401e
shrd ecx, edx, 1
shr edx, 1
inc ebx
test edx, edx
ja 0x100400c
jb 0x100401e
cmp ecx, 1
ja 0x100400c
push ebx
push esi
push edi
mov ebx, 0x10012c0
push ebx
push 0x53
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01001864
xor edx, edx
mov eax, edi
mov ecx, esi
test esi, esi
ja 0x1004043
cmp edi, 1
jbe 0x1004055
shrd eax, ecx, 1
shr ecx, 1
inc edx
test ecx, ecx
ja 0x1004043
jb 0x1004055
cmp eax, 1
ja 0x1004043
push edx
push 0x1001480
lea eax, [ebp - 0x88]
push 0x41
push eax
call fcn.01002f19
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10040a1
cmp esi, 0x8007007a
je 0x10040a1
test esi, esi
jge 0x10040a1
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x54
jmp 0x100419b
lea eax, [ebp - 0x88]
push eax
push 0
push 5
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSetParameter
mov esi, eax
test esi, esi
jge 0x10040e0
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x55
jmp 0x100419b
xor eax, eax
cmp byte [0x1008919], al
setne al
inc eax
inc eax
push eax
push 5
push dword [ebp - 0x240]
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportAddFile
mov esi, eax
test esi, esi
jge 0x1004127
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x56
jmp 0x100419b
xor eax, eax
cmp byte [0x1008919], al
setne al
inc eax
inc eax
push eax
push 5
push dword [ebp - 0x248]
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportAddFile
mov esi, eax
test esi, esi
jge 0x1004166
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x57
jmp 0x100419b
lea eax, [ebp - 0x258]
push eax
push 0x100
push 1
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportSubmit
mov esi, eax
test esi, esi
jge 0x10041a6
mov eax, dword [section..data]
cmp eax, section..data
je 0x10041ab
test byte [eax + 0x1c], 1
je 0x10041ab
push esi
push ebx
push 0x58
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010019d0
mov eax, dword [section..data]
cmp dword [ebp - 0x22c], 0
je 0x10041cb
push dword [ebp - 0x22c]
call sub.wer.dll_WerReportCloseHandle
and dword [ebp - 0x22c], 0
mov eax, dword [section..data]
cmp dword [ebp - 0x23c], 0
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x10041f0
push dword [ebp - 0x23c]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call edi
mov eax, dword [section..data]
cmp dword [ebp - 0x234], 0
je 0x100420f
push dword [ebp - 0x234]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call edi
mov eax, dword [section..data]
test esi, esi
jge 0x1004234
cmp eax, section..data
je 0x100424f
test byte [eax + 0x1c], 1
je 0x1004234
push esi
push ebx
push 0x59
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010019d0
mov eax, dword [section..data]
cmp eax, section..data
je 0x100424f
test byte [eax + 0x1c], 0x10
je 0x100424f
push ebx
push 0x5a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100183e
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.01005bfd
leave
ret 0x34