Function at 0x103eb66
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
push ebx
push esi
push edi
mov edi, dword [0x114b108]
mov esi, dword [ebp + 8]
movsx edx, word [0x114b11c]
lea ecx, [edi + edx + 0xe]
shr esi, cl
mov edx, dword [0x114b184]
lea edi, [edi + edx + 6]
mov ecx, edi
mov ebx, esi
shl ebx, cl
mov dword [ebp - 0x114], ebx
mov eax, ebx
cmp word [eax], 0x5a4d
je 0x103ebb5
mov eax, dword [0x114b1c0]
add eax, 0x10000
sub ebx, eax
jmp 0x103eb98
mov eax, dword [0x114b090]
add eax, 0x3b
add eax, dword [0x114b1a0]
mov edx, ebx
add edx, eax
mov dword [ebp - 0x10c], edx
mov eax, dword [edx]
add eax, ebx
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 8]
cmp eax, ecx
jbe 0x103ebec
mov eax, dword [0x114b1b8]
add eax, 0xfff9
sub ebx, eax
jmp 0x103eb98
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x11c], eax
movzx eax, word [eax]
cmp eax, 0x4550
je 0x103ec12
movsx eax, word [0x114b220]
add eax, 0xffff
sub ebx, eax
jmp 0x103eb98
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x120], eax
mov ecx, ebx
add ecx, eax
mov dword [ebp - 0x110], ecx
mov eax, ecx
mov edx, ebx
add edx, dword [eax + 0xc]
push edx
lea eax, [ebp - 0x103]
push eax
call fcn.0104199c
mov eax, dword [0x114b198]
add eax, dword [0x114b1a0]
sub eax, 3
mov dword [ebp - 4], eax
jmp 0x103ec74
mov eax, dword [ebp - 4]
mov al, byte [ebp + eax - 0x103]
cmp al, 0x7a
jge 0x103ec71
cmp al, 0x61
jle 0x103ec71
mov eax, dword [ebp - 4]
lea eax, [ebp + eax - 0x103]
sub byte [eax], 0x20
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
movsx eax, byte [ebp + eax - 0x103]
cmp eax, dword [0x114b1c0]
jne 0x103ec52
mov eax, dword [0x114b230]
movsx edx, word [0x114b1c8]
add edx, eax
cmp byte [ebp + edx - 0x108], 0x32
je 0x103ecff
mov edx, dword [0x114b1d8]
movsx ecx, word [0x114b0ec]
mov esi, edx
add esi, ecx
cmp byte [ebp + esi - 0x108], 0x52
je 0x103ecff
cmp byte [ebp + edx - 0x105], 0x4c
je 0x103ecff
cmp byte [ebp + eax - 0x108], 0x4b
je 0x103ecff
mov eax, dword [0x114b0f4]
add eax, dword [0x114b10c]
cmp byte [ebp + eax - 0x108], 0x33
je 0x103ecff
mov eax, dword [0x114b1b4]
movsx edx, word [0x114b260]
add eax, edx
cmp byte [ebp + eax - 0x10c], 0x45
jne 0x103ef61
mov eax, dword [0x114b124]
add eax, dword [0x114b21c]
sub eax, 9
mov dword [ebp - 0x108], eax
jmp 0x103ef4c
mov eax, dword [ebp - 0x110]
mov edx, ebx
add edx, dword [eax + 0x20]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x228], eax
mov ecx, dword [0x114b0a8]
sub ecx, 4
mul ecx
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x230]
add eax, edx
mov dword [ebp - 0x10c], eax
mov eax, dword [eax]
add eax, ebx
mov dword [ebp - 0x224], eax
push eax
lea eax, [ebp - 0x21f]
push eax
call fcn.0104199c
mov eax, dword [0x114b128]
add eax, dword [0x114b21c]
cmp byte [ebp + eax - 0x226], 0x47
jne 0x103ef46
mov eax, dword [0x114b158]
add eax, dword [0x114b26c]
cmp byte [ebp + eax - 0x225], 0x50
jne 0x103ef46
mov eax, dword [0x114b13c]
movsx edx, word [0x114b180]
add eax, edx
cmp byte [ebp + eax - 0x220], 0x72
jne 0x103ef46
mov eax, dword [0x114b10c]
add eax, dword [0x114b19c]
cmp byte [ebp + eax - 0x22d], 0x74
jne 0x103ef46
movsx eax, word [0x114b12c]
add eax, dword [0x114b0c4]
cmp byte [ebp + eax - 0x227], 0x63
jne 0x103ef46
mov eax, dword [0x114b0e0]
add eax, 6
add eax, dword [0x114b0c8]
cmp byte [ebp + eax - 0x21f], 0x41
jne 0x103ef46
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0x24]
add eax, ebx
mov dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x108]
mov ecx, dword [0x114b1b8]
add ecx, dword [0x114b198]
sub ecx, 8
mul ecx
mov dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
add eax, edx
mov dword [ebp - 0x114], eax
movzx eax, word [eax]
mov dword [ebp - 0x234], eax
movsx ecx, word [0x114b194]
sub ecx, 3
mul ecx
mov dword [ebp - 0x298], eax
mov edx, ebx
add edx, eax
mov eax, dword [ebp - 0x110]
add edx, dword [eax + 0x1c]
mov dword [ebp - 0x10c], edx
mov eax, edx
mov edx, ebx
add edx, dword [eax]
mov dword [ebp - 0x238], edx
mov dword [fcn.010451ac], edx
lea edi, [ebp - 0x252]
lea esi, str.InitializeCriticalSection
mov ecx, 0xd
rep movsw word es:[edi], word [esi]
mov dword [0x114b27c], ebx
lea edi, [ebp - 0x25f]
lea esi, str.CreateThread
mov ecx, 0xd
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x274]
lea esi, str.LeaveCriticalSection
mov ecx, 0x15
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x289]
lea esi, str.EnterCriticalSection
mov ecx, 0x15
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x289]
push eax
push dword [0x114b27c]
call dword [fcn.010451ac]
mov dword [0x1148a5c], eax
lea eax, [ebp - 0x274]
push eax
push dword [0x114b27c]
call dword [fcn.010451ac]
mov dword [0x10c7a40], eax
lea eax, [ebp - 0x25f]
push eax
push dword [0x114b27c]
call dword [fcn.010451ac]
mov dword [fcn.0114a020], eax
lea eax, [ebp - 0x252]
push eax
push dword [0x114b27c]
call dword [fcn.010451ac]
mov dword [0x1043fcc], eax
jmp 0x103ef61
inc dword [ebp - 0x108]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0x18]
cmp dword [ebp - 0x108], eax
jb 0x103ed18
pop edi
pop esi
pop ebx
leave
ret