Function at 0x401087
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
nop
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
add eax, 0x10
mov ecx, 0
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x28
jne 0x401142
mov eax, dword [ebp + 0x10]
add eax, 5
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 1
mov byte [eax], cl
movzx eax, byte [ebp + 0xc]
dec eax
mov ecx, dword [ebp + 8]
add ecx, eax
movsx eax, byte [ecx]
cmp eax, 0x29
jne 0x401104
movzx eax, byte [ebp + 0xc]
dec eax
mov ecx, dword [ebp + 8]
add ecx, eax
mov eax, 0
mov byte [ecx], al
jmp 0x401113
mov eax, dword [str.Missing_closing_bracket_in_operand]
push eax
call fcn.00409a13
add esp, 4
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
je 0x40113d
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x40111a
jmp 0x401174
mov eax, dword [ebp + 0x10]
add eax, 5
mov ecx, 0
mov byte [eax], cl
movzx eax, byte [ebp + 0xc]
dec eax
mov ecx, dword [ebp + 8]
add ecx, eax
movsx eax, byte [ecx]
cmp eax, 0x29
jne 0x401174
mov eax, dword [str.Missing_opening_bracket_in_operand]
push eax
call fcn.00409a13
add esp, 4
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401b47
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401203
mov eax, dword [ebp + 0x10]
mov ecx, 1
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 7
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x4011e5
mov eax, dword [ebp + 0x10]
mov ecx, 0x800
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 3
mov byte [eax], cl
jmp 0x401d11
jmp 0x4011f4
movsx eax, byte [ecx]
cmp eax, 0
je 0x4011bf
cmp eax, 0x27
je 0x4011bf
jmp 0x4011db
jmp 0x401217
jmp 0x401217
movsx eax, byte [ecx]
cmp eax, 0
je 0x401195
cmp eax, 0x46
je 0x4011b1
cmp eax, 0x66
je 0x4011b1
jmp 0x4011f9
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x40129d
mov eax, dword [ebp + 0x10]
mov ecx, 2
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 0
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
je 0x401272
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
jne 0x401272
jmp 0x40128e
mov eax, dword [ebp + 0x10]
mov ecx, pe_nt_image_headers32
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 0
mov byte [eax], cl
jmp 0x401d11
jmp 0x4012b1
jmp 0x4012b1
movsx eax, byte [ecx]
cmp eax, 0
je 0x40122a
cmp eax, 0x43
je 0x401246
cmp eax, 0x63
je 0x401246
jmp 0x401293
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401304
mov eax, dword [ebp + 0x10]
mov ecx, 4
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 3
mov byte [eax], cl
jmp 0x401d11
jmp 0x40130e
movsx eax, byte [ecx]
cmp eax, 0
je 0x4012c4
jmp 0x4012fa
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401394
mov eax, dword [ebp + 0x10]
mov ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 2
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
je 0x401369
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
jne 0x401369
jmp 0x401385
mov eax, dword [ebp + 0x10]
mov ecx, 0x100
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 1
mov byte [eax], cl
jmp 0x401d11
jmp 0x4013a8
jmp 0x4013a8
movsx eax, byte [ecx]
cmp eax, 0
je 0x401321
cmp eax, 0x45
je 0x40133d
cmp eax, 0x65
je 0x40133d
jmp 0x40138a
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
movsx eax, byte [ecx]
cmp eax, 0
jne 0x4013de
mov eax, dword [ebp + 0x10]
mov ecx, 0x10
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 3
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401464
mov eax, dword [ebp + 0x10]
mov ecx, 0x20
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 4
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
je 0x401439
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
jne 0x401439
jmp 0x401455
mov eax, dword [ebp + 0x10]
mov ecx, 0x200
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 2
mov byte [eax], cl
jmp 0x401d11
jmp 0x401478
jmp 0x401478
movsx eax, byte [ecx]
cmp eax, 0
je 0x4013f1
cmp eax, 0x4c
je 0x40140d
cmp eax, 0x6c
je 0x40140d
jmp 0x40145a
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x4017a1
mov eax, dword [ebp + 0x10]
mov ecx, 0x100000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 0
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
je 0x4014ca
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x4014a7
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x4015cb
mov eax, dword [ebp + 0x10]
mov ecx, 0x1000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 2
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401512
mov eax, dword [ebp + 0x10]
mov ecx, 0x4000
mov dword [eax], ecx
jmp 0x401d11
jmp 0x40161a
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401535
mov eax, dword [ebp + 0x10]
mov ecx, 0x8000
mov dword [eax], ecx
jmp 0x401d11
jmp 0x40161a
mov eax, dword [ebp + 0x10]
mov ecx, 0x1000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 0xa
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp - 4]
dec eax
movsx ecx, byte [eax]
cmp ecx, 0x2d
jne 0x401595
mov eax, dword [ebp + 0x10]
add eax, 8
mov ecx, 0
push ecx
mov ecx, dword [ebp - 4]
push ecx
mov dword [ebp - 8], eax
call fcn.0040a895
add esp, 8
shl eax, 0x10
sar eax, 0x10
mov ecx, 0xffffffff
imul eax, ecx
mov ecx, dword [ebp - 8]
mov word [ecx], ax
jmp 0x4015bc
mov eax, dword [ebp + 0x10]
add eax, 8
mov ecx, 0
push ecx
mov ecx, dword [ebp - 4]
push ecx
mov dword [ebp - 0xc], eax
call fcn.0040a895
add esp, 8
shl eax, 0x10
sar eax, 0x10
mov ecx, dword [ebp - 0xc]
mov word [ecx], ax
jmp 0x401d11
jmp 0x40161a
movsx eax, byte [ecx]
cmp eax, 0x48
jg 0x4015fd
cmp eax, 0x48
jge 0x4014f4
cmp eax, 0
je 0x4014d8
cmp eax, 0x2b
je 0x40153a
cmp eax, 0x2d
je 0x40153a
jmp 0x4015c1
cmp eax, 0x4c
je 0x401517
cmp eax, 0x68
je 0x4014f4
cmp eax, 0x6c
je 0x401517
jmp 0x4015c1
jmp 0x4017de
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_isspace
add esp, 4
cmp eax, 0
je 0x401642
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x40161f
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401743
mov eax, dword [ebp + 0x10]
mov ecx, 0x2000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 2
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x40168a
mov eax, dword [ebp + 0x10]
mov ecx, 0x10000
mov dword [eax], ecx
jmp 0x401d11
jmp 0x401792
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x4016ad
mov eax, dword [ebp + 0x10]
mov ecx, 0x20000
mov dword [eax], ecx
jmp 0x401d11
jmp 0x401792
mov eax, dword [ebp + 0x10]
mov ecx, 0x2000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 0xa
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp - 4]
dec eax
movsx ecx, byte [eax]
cmp ecx, 0x2d
jne 0x40170d
mov eax, dword [ebp + 0x10]
add eax, 8
mov ecx, 0
push ecx
mov ecx, dword [ebp - 4]
push ecx
mov dword [ebp - 0x10], eax
call fcn.0040a895
add esp, 8
shl eax, 0x10
sar eax, 0x10
mov ecx, 0xffffffff
imul eax, ecx
mov ecx, dword [ebp - 0x10]
mov word [ecx], ax
jmp 0x401734
mov eax, dword [ebp + 0x10]
add eax, 8
mov ecx, 0
push ecx
mov ecx, dword [ebp - 4]
push ecx
mov dword [ebp - 0x14], eax
call fcn.0040a895
add esp, 8
shl eax, 0x10
sar eax, 0x10
mov ecx, dword [ebp - 0x14]
mov word [ecx], ax
jmp 0x401d11
jmp 0x401792
movsx eax, byte [ecx]
cmp eax, 0x48
jg 0x401775
cmp eax, 0x48
jge 0x40166c
cmp eax, 0
je 0x401650
cmp eax, 0x2b
je 0x4016b2
cmp eax, 0x2d
je 0x4016b2
jmp 0x401739
cmp eax, 0x4c
je 0x40168f
cmp eax, 0x68
je 0x40166c
cmp eax, 0x6c
je 0x40168f
jmp 0x401739
jmp 0x4017de
jmp 0x4017de
movsx eax, byte [ecx]
cmp eax, 0x59
jg 0x4017ca
cmp eax, 0x59
jge 0x40161f
cmp eax, 0
je 0x40148b
cmp eax, 0x58
je 0x4014a7
jmp 0x401797
cmp eax, 0x78
je 0x4014a7
cmp eax, 0x79
je 0x40161f
jmp 0x401797
jmp 0x401cac
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x40180e
mov eax, dword [ebp + 0x10]
mov ecx, 0x40
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 5
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_tolower
add esp, 4
cmp eax, 0x62
jne 0x401857
mov eax, dword [ebp - 4]
inc eax
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401857
mov eax, dword [ebp + 0x10]
mov ecx, 0x80000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 0
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401893
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 7
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x40194e
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x4018f0
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 2
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 8
mov byte [eax], cl
jmp 0x401d11
jmp 0x40196f
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x40193f
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 0
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 8
mov byte [eax], cl
jmp 0x401d11
jmp 0x40196f
jmp 0x40196f
movsx eax, byte [ecx]
cmp eax, 0x43
je 0x4018a6
cmp eax, 0x5a
je 0x4018f5
cmp eax, 0x63
je 0x4018a6
cmp eax, 0x7a
je 0x4018f5
jmp 0x401944
jmp 0x401cac
mov eax, dword [ebp - 4]
mov ecx, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x401a3b
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 6
mov byte [eax], cl
jmp 0x401d11
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x4019eb
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 5
mov byte [eax], cl
jmp 0x401d11
jmp 0x401a70
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401a2c
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 4
mov byte [eax], cl
jmp 0x401d11
jmp 0x401a70
jmp 0x401a70
movsx eax, byte [ecx]
cmp eax, 0x4f
jg 0x401a60
cmp eax, 0x4f
jge 0x4019f0
cmp eax, 0
je 0x401982
cmp eax, 0x45
je 0x4019af
jmp 0x401a31
cmp eax, 0x65
je 0x4019af
cmp eax, 0x6f
je 0x4019f0
jmp 0x401a31
jmp 0x401cac
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401aa0
mov eax, dword [ebp + 0x10]
mov ecx, 0x40000
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 0
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
push ecx
call sub.msvcrt.dll_tolower
add esp, 4
cmp eax, 0x70
jne 0x401ae9
mov eax, dword [ebp - 4]
inc eax
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401ae9
mov eax, dword [ebp + 0x10]
mov ecx, 0x400
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
add eax, 4
mov ecx, 3
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
mov eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0
jne 0x401b38
mov eax, dword [ebp + 0x10]
add eax, 6
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 4
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 7
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 8
mov byte [eax], cl
jmp 0x401d11
jmp 0x401cac
jmp 0x401cac
movsx eax, byte [ecx]
cmp eax, 0x5a
jg 0x401bff
cmp eax, 0x5a
jge 0x401aee
cmp eax, 0x49
jg 0x401bb6
cmp eax, 0x49
jge 0x40147d
cmp eax, 0x43
jg 0x401b99
cmp eax, 0x43
jge 0x4012b6
cmp eax, 0
je 0x401182
cmp eax, 0x41
je 0x401187
cmp eax, 0x42
je 0x40121c
jmp 0x401b3d
cmp eax, 0x44
je 0x401313
cmp eax, 0x45
je 0x4013ad
cmp eax, 0x48
je 0x4013e3
jmp 0x401b3d
cmp eax, 0x50
jg 0x401be8
cmp eax, 0x50
jge 0x401974
cmp eax, 0x4c
je 0x4017e3
cmp eax, 0x4d
je 0x401813
cmp eax, 0x4e
je 0x401898
jmp 0x401b3d
cmp eax, 0x52
je 0x401a75
cmp eax, 0x53
je 0x401aa5
jmp 0x401b3d
cmp eax, 0x6c
jg 0x401c63
cmp eax, 0x6c
jge 0x4017e3
cmp eax, 0x64
jg 0x401c43
cmp eax, 0x64
jge 0x401313
cmp eax, 0x61
je 0x401187
cmp eax, 0x62
je 0x40121c
cmp eax, 0x63
je 0x4012b6
jmp 0x401b3d
cmp eax, 0x65
je 0x4013ad
cmp eax, 0x68
je 0x4013e3
cmp eax, 0x69
je 0x40147d
jmp 0x401b3d
cmp eax, 0x72
jg 0x401c95
cmp eax, 0x72
jge 0x401a75
cmp eax, 0x6d
je 0x401813
cmp eax, 0x6e
je 0x401898
cmp eax, 0x70
je 0x401974
jmp 0x401b3d
cmp eax, 0x73
je 0x401aa5
cmp eax, 0x7a
je 0x401aee
jmp 0x401b3d
mov eax, dword [ebp + 8]
movsx ecx, byte [eax]
cmp ecx, 0
je 0x401d11
mov eax, dword [ebp + 0x10]
add eax, 5
movsx ecx, byte [eax]
cmp ecx, 0
je 0x401cd6
mov eax, dword [ebp + 8]
mov ecx, eax
inc eax
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x10]
add eax, 0xc
mov ecx, 0
push ecx
mov ecx, dword [ebp + 8]
push ecx
mov dword [ebp - 0x18], eax
call fcn.0040a895
add esp, 8
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
add eax, 0xb
mov ecx, 1
mov byte [eax], cl
mov eax, dword [ebp + 0x10]
add eax, 0x10
movzx ecx, byte [eax]
or ecx, 2
mov byte [eax], cl
leave
ret