Function at 0x453a88
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
inc word [0x48faca]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 4]
movzx eax, byte [ebx]
dec eax
dec eax
push edi
mov edi, dword [ebp + 0xc]
je 0x45441a
sub eax, 0x84
je 0x45415d
dec eax
je 0x453ec5
dec eax
je 0x453cc9
dec eax
je 0x453adb
inc word [0x48fad8]
inc word [0x48face]
jmp 0x4544a1
movzx edx, word [esi + 0xa]
cmp dx, 0x28
jb 0x453cd6
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebx + 0x24]
mov esi, 0xc0ff
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ecx
and eax, esi
mov ecx, 0x80fe
cmp eax, ecx
je 0x453b17
mov byte [ebp - 0xc], 0
jmp 0x453b22
mov al, byte [edi + 0xba]
inc al
mov byte [ebp - 0xc], al
mov eax, dword [0x48f51c]
and eax, esi
cmp eax, ecx
jne 0x453eb1
mov eax, dword [0x48f514]
cmp byte [eax + 7], 0xff
jne 0x453eb1
cmp byte [ebx + 1], 0
jne 0x453eb1
cmp byte [ebp - 0x1c], 0xff
je 0x453eb1
cmp dx, 0x2a
jb 0x453b72
lea eax, [ebx + 0x28]
mov dword [ebp - 8], eax
movzx eax, byte [eax + 1]
movzx ecx, dx
lea eax, [eax*8 + 0x28]
cmp ecx, eax
jae 0x453b76
and dword [ebp - 8], 0
lea edx, [ebp - 0x1c]
call fcn.00454d52
test al, al
jl 0x4544a1
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov ebx, esi
and ebx, 0xc0ff
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edx
cmp ebx, 0x80fe
je 0x453bb2
xor bl, bl
jmp 0x453bbd
mov ebx, dword [ebp + 0xc]
mov bl, byte [ebx + 0xba]
inc bl
movsx eax, al
imul eax, eax, 0x30
cmp dword [ebp - 8], 0
mov byte [ebp - 0xc], bl
mov dword [eax + 0x48f7fc], esi
mov dword [eax + 0x48f800], ecx
mov dword [eax + 0x48f804], edi
mov dword [eax + 0x48f808], edx
mov byte [eax + 0x48f80c], bl
je 0x4544a1
mov eax, dword [ebp - 8]
cmp byte [eax], 2
jne 0x4544a1
lea edx, [ebp - 0x1c]
call fcn.00454b41
mov byte [ebp - 4], al
test al, al
jge 0x453c7e
call fcn.00454b8e
mov byte [ebp - 4], al
test al, al
jl 0x4544a1
movsx edi, al
mov eax, dword [ebp + 0xc]
imul edi, edi, 0x2c
mov dword [edi + 0x48f624], eax
movzx eax, byte [eax + 0xb4]
push eax
mov eax, dword [ebp - 8]
add eax, 2
push eax
lea eax, [edi + 0x48f628]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x48f614], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x48f618], eax
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [edi + 0x48f610], esi
mov dword [edi + 0x48f61c], eax
mov byte [edi + 0x48f620], bl
mov byte [edi + 0x48f634], 4
mov dword [edi + 0x48f638], 5
movsx esi, byte [ebp - 4]
imul esi, esi, 0x2c
cmp byte [esi + 0x48f634], 1
jne 0x4544a1
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0xb4]
push eax
mov eax, dword [ebp - 8]
add eax, 2
push eax
lea eax, [esi + 0x48f628]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + 0x48f634], 4
mov dword [esi + 0x48f638], 5
jmp 0x4544a1
movzx eax, word [esi + 0xa]
mov dword [ebp - 8], eax
cmp ax, 0x18
jae 0x453cf0
mov eax, esi
call fcn.00451c32
inc word [0x48fad2]
inc word [0x48face]
jmp 0x4544a9
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x10], eax
mov eax, esi
and eax, 0xc0ff
mov dword [ebp - 0x1c], esi
cmp eax, 0x80fe
je 0x453d1a
xor dl, dl
jmp 0x453d22
mov dl, byte [edi + 0xba]
inc dl
mov eax, dword [0x48f514]
cmp byte [eax + 7], 0xff
mov byte [ebp - 0xc], dl
jne 0x453eb1
cmp byte [ebx + 1], 0
jne 0x453eb1
cmp byte [ebp - 0x1c], 0xff
je 0x453eb1
cmp byte [0x48f534], 0xff
jne 0x453e0d
mov byte [ebp - 4], 0
movsx eax, byte [ebp - 4]
mov cl, byte [eax + edi + 0x94]
test cl, cl
je 0x453d94
cmp cl, 0x40
je 0x453d94
imul eax, eax, 0x18
add eax, edi
cmp esi, dword [eax + 0x4c]
jne 0x453d94
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + 0x50]
jne 0x453d94
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax + 0x54]
jne 0x453d94
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 0x58]
jne 0x453d94
cmp dl, byte [eax + 0x5c]
je 0x453dac
inc byte [ebp - 4]
cmp byte [ebp - 4], 3
jl 0x453d59
cmp word [ebp - 8], 0x1a
jae 0x453db9
mov eax, dword [ebp + 8]
jmp 0x453cd8
push 0x40
push dword [ebp - 4]
push edi
call fcn.00452620
jmp 0x453e05
movzx eax, byte [ebx + 0x19]
movzx ecx, word [ebp - 8]
lea eax, [eax*8 + 0x18]
cmp ecx, eax
jb 0x453da4
lea edx, [ebp - 0x1c]
call fcn.00454b41
test al, al
jl 0x4544a1
test byte [ebx + 4], 0x20
je 0x4544a1
movsx eax, al
imul eax, eax, 0x2c
mov ecx, edi
movzx ecx, byte [ecx + 0xb4]
push ecx
add ebx, 0x1a
add eax, 0x48f628
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x4544a1
lea edx, [ebp - 0x1c]
call fcn.00454b41
mov byte [ebp - 4], al
test al, al
jl 0x4544a1
test byte [ebx + 4], 0x20
jne 0x453e35
movsx edi, al
imul edi, edi, 0x2c
cmp byte [edi + 0x48f634], 1
jne 0x453e7b
cmp word [ebp - 8], 0x1a
jb 0x453da4
movzx ecx, byte [ebx + 0x19]
movzx edx, word [ebp - 8]
lea ecx, [ecx*8 + 0x18]
cmp edx, ecx
jb 0x453da4
movsx edi, al
mov eax, dword [ebp + 0xc]
imul edi, edi, 0x2c
movzx eax, byte [eax + 0xb4]
push eax
add ebx, 0x1a
lea eax, [edi + 0x48f628]
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [edi + 0x48f630], 0
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x48f624], eax
mov eax, dword [0x487ef8]
mov byte [edi + 0x48f634], 2
mov dword [edi + 0x48f638], eax
je 0x4544a1
push dword [ebp - 4]
call fcn.0045519d
pop ecx
jmp 0x4544a1
mov eax, dword [ebp + 8]
call fcn.00451c32
inc word [0x48fad8]
jmp 0x453ce4
movzx ecx, word [esi + 0xa]
cmp cx, 0x18
jb 0x453cd6
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x18], edx
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebx + 0x14]
and eax, 0xc0ff
mov dword [ebp - 0x10], edx
cmp eax, 0x80fe
je 0x453efd
mov byte [ebp - 0xc], 0
jmp 0x453f08
mov al, byte [edi + 0xba]
inc al
mov byte [ebp - 0xc], al
mov eax, dword [0x48f514]
cmp byte [eax + 7], 0xff
jne 0x454156
cmp byte [ebx + 1], 0
jne 0x454156
cmp byte [ebp - 0x1c], 0xff
je 0x454156
cmp cx, 0x1a
jb 0x453f46
movzx eax, byte [ebx + 0x19]
add ebx, 0x18
movzx ecx, cx
lea eax, [eax*8 + 0x18]
cmp ecx, eax
jae 0x453f48
xor ebx, ebx
mov edx, dword [0x48f51c]
mov byte [ebp - 4], 0
movsx eax, byte [ebp - 4]
mov cl, byte [eax + edi + 0x94]
test cl, 0x10
jne 0x453f83
test cl, 8
je 0x453fb0
test edx, edx
jne 0x453fb0
cmp dword [0x48f520], edx
jne 0x453fb0
cmp dword [0x48f524], edx
jne 0x453fb0
cmp dword [0x48f528], edx
jne 0x453fb0
mov ecx, dword [ebp - 0x1c]
imul eax, eax, 0x18
add eax, edi
cmp ecx, dword [eax + 0x4c]
jne 0x453fb0
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + 0x50]
jne 0x453fb0
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax + 0x54]
jne 0x453fb0
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 0x58]
jne 0x453fb0
mov cl, byte [ebp - 0xc]
cmp cl, byte [eax + 0x5c]
je 0x453fc0
inc byte [ebp - 4]
cmp byte [ebp - 4], 3
jl 0x453f52
mov eax, esi
jmp 0x4544a4
xor eax, eax
cmp edx, eax
jne 0x453fe2
cmp dword [0x48f520], eax
jne 0x453fe2
cmp dword [0x48f524], eax
jne 0x453fe2
cmp dword [0x48f528], eax
je 0x4540e1
cmp ebx, eax
je 0x454156
mov edx, 0x48f51c
call fcn.00454b41
test al, al
jl 0x454041
movsx esi, al
imul esi, esi, 0x2c
cmp byte [esi + 0x48f634], 1
jne 0x4540cf
mov eax, edi
mov dword [esi + 0x48f624], eax
movzx eax, byte [eax + 0xb4]
push eax
add ebx, 2
lea eax, [esi + 0x48f628]
push ebx
push eax
call sub.msvcrt.dll_memcpy
mov byte [esi + 0x48f634], 4
mov dword [esi + 0x48f638], 5
jmp 0x4540cc
call fcn.00454b8e
test al, al
jge 0x45405d
mov eax, esi
call fcn.00451c32
inc word [0x48fad4]
jmp 0x4544a9
movsx edi, al
mov eax, dword [ebp + 0xc]
imul edi, edi, 0x2c
mov dword [edi + 0x48f624], eax
movzx eax, byte [eax + 0xb4]
push eax
add ebx, 2
lea eax, [edi + 0x48f628]
push ebx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0x48f51c]
mov dword [edi + 0x48f610], eax
mov eax, dword [0x48f520]
mov dword [edi + 0x48f614], eax
mov eax, dword [0x48f524]
mov dword [edi + 0x48f618], eax
mov eax, dword [0x48f528]
mov dword [edi + 0x48f61c], eax
mov al, byte [0x48f52c]
mov byte [edi + 0x48f620], al
mov byte [edi + 0x48f634], 4
mov dword [edi + 0x48f638], 5
add esp, 0xc
mov ebx, dword [ebp + 0xc]
push 0x60
lea edi, [ebp - 0x1c]
call fcn.00454861
jmp 0x453eab
mov byte [ebp - 4], al
lea eax, [edi + 0x94]
mov dword [ebp - 8], eax
lea esi, [edi + 0x54]
mov eax, dword [ebp - 8]
cmp byte [eax], 0
je 0x454142
mov eax, dword [ebp - 0x1c]
lea edi, [esi - 8]
cmp eax, dword [edi]
jne 0x454142
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi - 4]
jne 0x454142
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi]
jne 0x454142
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 4]
jne 0x454142
mov al, byte [ebp - 0xc]
cmp al, byte [esi + 8]
jne 0x454142
mov ebx, dword [ebp + 0xc]
push 0x22
call fcn.00454861
mov eax, dword [ebp - 8]
test byte [eax], 8
pop ecx
je 0x454142
push 0x40
push dword [ebp - 4]
push ebx
call fcn.00452620
add esp, 0xc
inc byte [ebp - 4]
add esi, 0x18
inc dword [ebp - 8]
cmp byte [ebp - 4], 3
jl 0x4540f0
jmp 0x4544a1
mov eax, esi
jmp 0x453eb4
cmp word [esi + 0xa], 0x10
jb 0x453cd6
mov eax, dword [0x48f51c]
and eax, 0xc0ff
cmp eax, 0x80fe
jne 0x454156
mov eax, dword [0x48f514]
cmp byte [eax + 7], 0xff
jne 0x454156
cmp byte [ebx + 1], 0
jne 0x454156
lea esi, [edi + 0xbb]
cmp byte [esi], 3
jb 0x4541a0
push edi
call fcn.004549f4
pop ecx
test al, al
jne 0x4541a3
mov byte [esi], 0
mov edx, 0x48f51c
call fcn.00454ee5
test al, al
jge 0x4541c6
push edi
mov eax, edx
call fcn.00454f41
pop ecx
test al, al
jge 0x4541c6
mov eax, dword [ebp + 8]
jmp 0x45404c
movzx ecx, word [ebx + 6]
movsx esi, al
imul esi, esi, 0xc
mov edx, ecx
shr edx, 8
mov byte [ebp - 4], dl
mov byte [ebp - 3], cl
movzx eax, word [ebp - 4]
mov dword [esi + 0x48f5f0], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jbe 0x4541f6
call fcn.00452caa
mov dword [0x487efc], eax
mov eax, dword [ebx + 8]
test eax, eax
jbe 0x454207
call fcn.00452caa
mov dword [0x487ef8], eax
mov al, byte [ebx + 5]
mov byte [esi + 0x48f5f4], al
mov eax, dword [ebp + 8]
movzx ebx, word [eax + 8]
movzx edi, bx
lea eax, [edi - 0x10]
cmp eax, 2
mov dword [ebp - 8], 0x10
jl 0x4544a1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 8]
inc ecx
call fcn.0045217f
test eax, eax
jle 0x45440e
movzx ax, al
mov word [ebp - 4], ax
shl eax, 3
movzx ecx, ax
movzx eax, word [ebp - 8]
movzx edx, cx
sub edi, eax
cmp edx, edi
jg 0x45440e
mov edx, dword [ebp + 8]
cmp word [edx + 0xa], bx
jne 0x454270
mov edi, dword [edx + 4]
add edi, eax
jmp 0x4542aa
cmp cx, 0x20
jbe 0x454295
mov ecx, dword [ebp - 8]
mov eax, edx
call fcn.0045217f
test eax, eax
setl cl
dec cl
and cl, al
cmp cl, 0x19
jne 0x45440e
push 0x20
pop ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 8]
mov edi, 0x48f7c8
push edi
call fcn.00451f9f
pop ecx
movzx ecx, ax
movzx eax, byte [edi]
dec eax
je 0x454399
dec eax
dec eax
je 0x4542fd
dec eax
dec eax
je 0x4542d1
sub eax, 0x13
je 0x4543e3
inc word [0x48fad8]
jmp 0x4543e3
cmp cx, 8
jb 0x45440e
mov eax, dword [edi + 4]
call fcn.00452caa
cmp eax, 0x500
jb 0x4543e3
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0xac], ax
jmp 0x4543e3
cmp cx, 0x20
jb 0x45440e
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov dword [ebp - 0x1c], eax
and ecx, 0xc0ff
mov eax, 0x80fe
cmp ecx, eax
je 0x454336
mov byte [ebp - 0xc], 0
jmp 0x454344
mov edx, dword [ebp + 0xc]
mov dl, byte [edx + 0xba]
inc dl
mov byte [ebp - 0xc], dl
cmp ecx, eax
je 0x4543e3
test byte [edi + 3], 0x80
je 0x4543e3
cmp byte [edi + 2], 0x40
jne 0x4543e3
mov eax, dword [edi + 4]
call fcn.00452caa
push dword [ebp + 0xc]
lea edx, [ebp - 0x1c]
mov edi, eax
call fcn.00455040
pop ecx
test al, al
jge 0x45438b
test edi, edi
jbe 0x454387
push dword [ebp + 0xc]
call fcn.00455083
pop ecx
test al, al
jl 0x4543e3
movsx eax, al
imul eax, eax, 0x1c
mov dword [eax + 0x48f578], edi
jmp 0x4543e3
cmp cx, 8
jb 0x45440e
mov eax, dword [esi + 0x48f5ec]
test eax, eax
je 0x4543e3
cmp byte [eax + 0x24], 1
jne 0x4543e3
mov ecx, dword [ebp + 0xc]
movzx ecx, byte [ecx + 0xb4]
push ecx
add edi, 2
add eax, 0x18
push edi
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esi + 0x48f5ec]
mov ecx, dword [0x487ef8]
mov byte [eax + 0x24], 2
mov eax, dword [esi + 0x48f5ec]
add esp, 0xc
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp + 8]
movzx ebx, word [ecx + 8]
movzx edi, bx
mov dword [ebp - 8], eax
movzx eax, ax
mov ecx, edi
sub ecx, eax
cmp ecx, 2
jge 0x45422d
jmp 0x4544a1
inc word [0x48fad2]
jmp 0x453acf
cmp word [esi + 0xa], 0x30
jb 0x453cd6
mov esi, ebx
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x10], ecx
mov ecx, eax
and ecx, 0xc0ff
mov dword [ebp - 0x1c], eax
cmp ecx, 0x80fe
je 0x454468
and eax, 0x8fff
cmp eax, 0x1ff
je 0x454468
cmp eax, 0x2ff
je 0x454468
mov byte [ebp - 0xc], 0
jmp 0x454473
mov al, byte [edi + 0xba]
inc al
mov byte [ebp - 0xc], al
lea edx, [ebp - 0x1c]
call fcn.00454d52
mov dl, al
test dl, dl
jl 0x4544a1
mov eax, dword [esi + 4]
call fcn.00452caa
mov ecx, 0xffff
cmp eax, ecx
jae 0x454494
mov ecx, eax
movsx eax, dl
imul eax, eax, 0x30
mov word [eax + 0x48f810], cx
mov eax, dword [ebp + 8]
call fcn.00451c32
pop edi
pop esi
pop ebx
leave
ret