Function at 0x45bf10
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, eax
movzx ecx, byte [ebx]
push esi
mov esi, dword [ebp + 8]
lea eax, [ecx - 9]
push edi
cmp eax, 0x75
ja case.0x45bf33.34
movzx eax, byte [eax + 0x45c4d8]
mov dl, 4
jmp dword [eax*4 + 0x45c470]
movzx ecx, byte [ebx + 1]
mov eax, 1
test byte [ecx + 0x526c78], al
je 0x45bf5f
jmp 0x45bf50
movzx edx, byte [eax + ebx + 1]
inc eax
test byte [edx + 0x526c78], 1
jne 0x45bf50
pop edi
mov dword [esi], 0x95
pop esi
pop ebx
pop ebp
ret
cmp byte [ebx + 1], 0x2d
jne 0x45bf9a
movzx ecx, byte [ebx + 2]
mov eax, 2
test ecx, ecx
je 0x45bf8f
lea ecx, [ecx]
cmp ecx, 0xa
je 0x45bf8f
movzx ecx, byte [eax + ebx + 1]
inc eax
test ecx, ecx
jne 0x45bf80
pop edi
mov dword [esi], 0x95
pop esi
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x57
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x16
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x17
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 1
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x56
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x58
pop esi
mov eax, 1
pop ebx
pop ebp
ret
cmp byte [ebx + 1], 0x2a
jne 0x45c032
mov cl, byte [ebx + 2]
test cl, cl
je 0x45c032
mov eax, 3
movzx ecx, cl
nop
cmp ecx, 0x2a
jne 0x45c01b
cmp byte [eax + ebx], 0x2f
je 0x45c026
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x45c027
inc eax
jmp 0x45c010
inc eax
pop edi
mov dword [esi], 0x95
pop esi
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x59
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x5a
pop esi
mov eax, 1
pop ebx
pop ebp
ret
xor eax, eax
cmp byte [ebx + 1], 0x3d
pop edi
sete al
mov dword [esi], 0x4c
pop esi
pop ebx
inc eax
pop ebp
ret
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x45c080
pop edi
mov dword [esi], 0x4e
pop esi
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3e
jne 0x45c095
pop edi
mov dword [esi], 0x4b
pop esi
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3c
jne 0x45c0aa
pop edi
mov dword [esi], 0x54
pop esi
mov eax, 2
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x4f
pop esi
mov eax, 1
pop ebx
pop ebp
ret
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x45c0d3
pop edi
mov dword [esi], 0x50
pop esi
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3e
jne 0x45c0e8
pop edi
mov dword [esi], 0x55
pop esi
mov eax, 2
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x4d
pop esi
mov eax, 1
pop ebx
pop ebp
ret
cmp byte [ebx + 1], 0x3d
mov eax, 2
jne 0x45c29e
pop edi
mov dword [esi], 0x4b
pop esi
pop ebx
pop ebp
ret
cmp byte [ebx + 1], 0x7c
je 0x45c128
pop edi
mov dword [esi], 0x53
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x5b
pop esi
mov eax, 2
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x19
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x52
pop esi
mov eax, 1
pop ebx
pop ebp
ret
pop edi
mov dword [esi], 0x5d
pop esi
mov eax, 1
pop ebx
pop ebp
ret
movzx edx, byte [ebx + 1]
mov eax, 1
test edx, edx
je 0x45c18d
cmp edx, ecx
jne 0x45c183
movzx edi, byte [ebx + eax + 1]
cmp edi, ecx
jne 0x45c18d
inc eax
movzx edx, byte [eax + ebx + 1]
inc eax
test edx, edx
jne 0x45c175
cmp edx, 0x27
jne 0x45c19e
pop edi
mov dword [esi], 0x5e
pop esi
inc eax
pop ebx
pop ebp
ret
test edx, edx
je 0x45c29e
pop edi
mov dword [esi], 0x1a
pop esi
inc eax
pop ebx
pop ebp
ret
movzx eax, byte [ebx + 1]
test byte [eax + 0x526c78], dl
jne case.0x45bf33.24
pop edi
mov dword [esi], 0x76
pop esi
mov eax, 1
pop ebx
pop ebp
ret
xor eax, eax
mov dword [esi], 0x81
test byte [ecx + 0x526c78], dl
je 0x45c1ee
mov edi, edi
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c1e0
cmp byte [eax + ebx], 0x2e
jne 0x45c216
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
je 0x45c210
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c202
mov dword [esi], 0x82
mov cl, byte [eax + ebx]
cmp cl, 0x65
je 0x45c223
cmp cl, 0x45
jne 0x45c274
mov cl, byte [eax + ebx + 1]
movzx edi, cl
test byte [edi + 0x526c78], dl
jne 0x45c249
cmp cl, 0x2b
je 0x45c23c
cmp cl, 0x2d
jne 0x45c274
movzx ecx, byte [eax + ebx + 2]
test byte [ecx + 0x526c78], dl
je 0x45c274
movzx ecx, byte [eax + ebx + 2]
add eax, 2
test byte [ecx + 0x526c78], dl
je 0x45c26e
lea esp, [esp]
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c260
mov dword [esi], 0x82
movzx ecx, byte [eax + ebx]
mov dl, 0x46
test byte [ecx + 0x526c78], dl
je 0x45c469
jmp 0x45c290
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c290
pop edi
mov dword [esi], 0x94
pop esi
pop ebx
pop ebp
ret
mov eax, 1
cmp ecx, 0x5d
je 0x45c2c1
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x45c2c1
inc eax
cmp ecx, 0x5d
jne 0x45c2b3
sub ecx, 0x5d
neg ecx
sbb ecx, ecx
and ecx, 0x7a
add ecx, 0x1a
pop edi
mov dword [esi], ecx
pop esi
pop ebx
pop ebp
ret
movzx ecx, byte [ebx + 1]
mov dl, 4
mov dword [esi], 0x85
mov eax, 1
test byte [ecx + 0x526c78], dl
je 0x45c469
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c2f2
pop edi
pop esi
pop ebx
pop ebp
ret
movzx ecx, byte [ebx + 1]
mov dl, 4
mov eax, 1
test byte [ecx + 0x526c78], dl
je case.0x45bf33.13
jmp 0x45c320
movzx ecx, byte [eax + ebx + 1]
inc eax
test byte [ecx + 0x526c78], dl
jne 0x45c320
cmp eax, 1
jle case.0x45bf33.13
pop edi
mov dword [esi], 0x84
pop esi
pop ebx
pop ebp
ret
movzx ecx, byte [ebx + 1]
xor edi, edi
mov dword [esi], 0x85
lea eax, [edi + 1]
test ecx, ecx
je 0x45c387
mov dl, 0x46
movzx esi, cl
test byte [esi + 0x526c78], dl
je 0x45c361
inc edi
jmp 0x45c372
cmp ecx, 0x28
je 0x45c392
cmp ecx, 0x3a
jne 0x45c37c
cmp byte [ebx + eax + 1], cl
jne 0x45c37c
inc eax
movzx ecx, byte [eax + ebx + 1]
inc eax
test ecx, ecx
jne 0x45c353
mov esi, dword [ebp + 8]
test edi, edi
jne 0x45c469
pop edi
mov dword [esi], 0x94
pop esi
pop ebx
pop ebp
ret
test edi, edi
jle 0x45c37c
movzx ecx, byte [eax + ebx + 1]
inc eax
test ecx, ecx
je 0x45c3b4
movzx edx, cl
test byte [edx + 0x526c78], 1
jne 0x45c3b4
cmp ecx, 0x29
jne 0x45c396
inc eax
jmp 0x45c37c
cmp ecx, 0x29
jne 0x45c3bc
inc eax
jmp 0x45c37c
mov esi, dword [ebp + 8]
mov dword [esi], 0x94
jmp 0x45c37f
cmp byte [ebx + 1], 0x27
jne case.0x45bf33.34
movzx ecx, byte [ebx + 2]
mov dword [esi], 0x83
mov eax, 2
test ecx, ecx
je 0x45c402
mov dl, 8
cmp ecx, 0x27
je 0x45c402
movzx ecx, cl
test byte [ecx + 0x526c78], dl
jne 0x45c3f8
mov dword [esi], 0x94
movzx ecx, byte [eax + ebx + 1]
inc eax
test ecx, ecx
jne 0x45c3e2
mov edx, eax
and edx, 0x80000001
jns 0x45c411
dec edx
or edx, 0xfffffffe
inc edx
jne 0x45c417
test ecx, ecx
jne 0x45c421
mov dword [esi], 0x94
test ecx, ecx
je 0x45c469
pop edi
pop esi
inc eax
pop ebx
pop ebp
ret
mov dl, 0x46
test byte [ecx + 0x526c78], dl
jne 0x45c441
pop edi
mov dword [esi], 0x94
pop esi
mov eax, 1
pop ebx
pop ebp
ret
movzx eax, byte [ebx + 1]
mov edi, 1
test byte [eax + 0x526c78], dl
je 0x45c460
movzx ecx, byte [edi + ebx + 1]
inc edi
test byte [ecx + 0x526c78], dl
jne 0x45c452
call fcn.0045be80
mov dword [esi], eax
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret
add byte [ecx - 0x6fff4700], bh
or edx, dword [eax + 0xb900b]
mov ecx, 0x9000b900
or edx, dword [eax + 0xb900b]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0x9000b900
or edx, dword [eax + 0xb900b]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0x9000b900
or edx, dword [eax + 0xb900b]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0x9000b900
or edx, dword [eax + 0xb900b]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0x9000b900
or edx, dword [eax + 0xb900b]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
or eax, dword [eax]
mov ecx, 0xb900b900
add byte [eax - 0x6ff46ff5], dl
mov edi, edi
add al, 0x80
pop esp
sbb byte [eax + eax - 0x38], 5
enter 0xffffffffffffc805, 5
sbb byte [eax + eax*4 + 0x5c], 0x80
pop esp
add al, cl
add eax, 0x5c805c8
sbb byte [eax + eax*4 + 0x5c], 0x80
pop esp
add al, cl
add eax, 0x5c805c8
sbb byte [eax + eax*4 + 0x5c], 0x80
pop esp
add al, cl
add eax, 0x5c805c8
sbb byte [eax + eax*4 + 0x5c], 0x80
pop esp
add al, cl
add eax, 0x5c8005c8
sbb byte [eax + eax*4 + 0x5c], 0
enter 0xffffffffffffc805, 5
enter 0xffffffffffff8005, 0x5c
sbb byte [eax + eax*4 + 0x5c], 0
enter 0xffffffffffffc805, 5
enter 0xffffffffffff8005, 0x5c
sbb byte [eax + eax*4 + 0x5c], 0
enter 0xffffffffffffc805, 5
enter 0xffffffffffff8005, 0x5c
sbb byte [eax + eax*4 + 0x5c], 0
outsd dx, dword [esi]
push edi
scasb al, byte es:[edi]
mov edi, 0x9e892801
ja 0x5ec630
xchg esp, eax
inc esp
iretd
lahf
add byte [esp + eax*8 + 0x18040f], dl
leave
mov ch, 0xe1
inc esp
pop ecx
or ebp, dword [ebp + 0x57]
add byte [eax], al
add byte [eax], al
dec ecx
inc ebp
dec esi
inc esp
scasb al, byte es:[edi]
inc edx
pushal
or byte [edi], 0
str word [edi]
add byte [eax], ch
add byte [eax], al
add byte [eax], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, bh
invalid