Function at 0x301b95d9
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x554
mov eax, dword [0x302a3bc0]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x6c]
mov cl, byte [eax + 5]
mov byte [ebp + 0x1f], cl
push ebx
lea ecx, [eax + 0x430]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 0x68]
movzx edx, byte [ecx + 7]
push esi
mov esi, dword [ecx + 0x1c]
movzx ecx, byte [ecx + 0x18]
mov ebx, dword [esi + 0x1c]
and dword [ebp - 0x24], 0
fld dword [ecx*4 + 0x302615b0]
and dword [ebp - 0x1c], 0
push edi
fstp dword [ebp - 0x34]
movzx edi, byte [esi + 4]
lea ecx, [ebp + 0x28]
push ecx
movsx ecx, byte [eax + 0x11]
push ecx
mov ecx, dword [ebp + 0x64]
mov dword [ebp - 0x30], edx
movzx edx, byte [esi + 5]
add ecx, 0x14
mov dword [ebp - 0x2c], edx
push ecx
add eax, 0x3c
sub edx, edi
push eax
movzx eax, byte [esi + 1]
mov dword [ebp + 0x10], edx
movzx edx, byte [esi + 2]
push eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x38], edx
call fcn.3008862e
movzx eax, byte [ebp + 0x1f]
and dword [ebp], 0
add esp, 0x14
test eax, eax
jle 0x301b9c60
mov ecx, dword [ebp + 0x6c]
mov edi, dword [ebp]
mov dl, byte [edi + ecx + 6]
mov bl, byte [ecx + edi + 0xc]
mov al, dl
imul byte [ebp - 0x30]
mov byte [ebp + 0x26], al
mov al, byte [ecx + edi + 7]
imul byte [ebp - 0x30]
mov byte [ebp + 0x27], bl
mov ebx, dword [ebp - 0x1c]
cmp dl, byte [ecx + ebx + 0x14]
jne 0x301b96aa
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
inc dword [ebp - 0x1c]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x28], edx
movsx ecx, byte [ecx + 0x11]
cmp edi, ecx
je 0x301b96d4
mov ecx, dword [ebp + 0x64]
cmp edi, dword [ecx + 0x10]
je 0x301b96d4
mov ecx, dword [ebp + 0x68]
movzx ecx, byte [ecx + 0x1a]
and dword [ebp - 4], 0
shl ecx, 2
mov edx, ecx
push 4
pop ecx
sub ecx, edx
mov dword [ebp - 0xc], ecx
jmp 0x301b96df
and dword [ebp - 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [ebp + 0x68]
cmp byte [ecx + 0x19], 0
je 0x301b98b6
lea ecx, [ebp - 0x338]
movzx edx, al
mov eax, dword [ebp - 8]
mov dword [ebp + 0xc], ecx
movzx ecx, byte [ebp + 0x26]
mov dword [ebp - 0x18], edx
sub edx, ecx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x20], eax
fld dword [edx*4 + 0x302615e0]
jmp 0x301b9777
cmp ecx, dword [ebp - 0x18]
fldz
jge 0x301b975c
mov ebx, dword [ebp + 0x74]
mov edi, dword [ebp + 0x70]
sub edi, ebx
lea eax, [ebx + ecx*4]
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edx
jmp 0x301b9730
mov edi, dword [ebp + 0x14]
cmp dword [ebp + 0x7c], 0
mov edi, dword [edi + eax]
mov ebx, dword [ebp + 0x20]
fld dword [edi + ebx*4]
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
jne 0x301b9754
mov edi, dword [eax]
fld dword [edi + ebx*4]
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
add eax, 4
dec dword [ebp + 0x18]
jne 0x301b972d
cmp dword [ebp + 0x7c], 0
je 0x301b9766
fld st(0)
faddp st(1)
mov eax, dword [ebp + 0xc]
fmul st(1)
add dword [ebp + 0xc], 4
inc dword [ebp + 0x20]
fstp dword [eax]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x2c]
jl 0x301b9713
fstp st(0)
movzx eax, byte [ebp + 0x27]
mov dl, byte [esi + 0x6b]
mov ecx, dword [esi + eax*4 + 0x18]
movzx eax, byte [eax + esi]
mov byte [ebp + 0x1e], dl
xor edx, edx
and dword [ebp + 0xc], edx
test eax, eax
mov byte [ebp + 0x27], 0
jle 0x301b9930
mov ebx, dword [ebp - 0x24]
add dword [ebp - 0x24], eax
lea edi, [ecx + 1]
mov ecx, dword [ebp + 0x6c]
lea ecx, [ecx + ebx*4 + 0x70]
mov dword [ebp - 0x14], edi
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x14], eax
movzx eax, byte [edi - 1]
movzx ecx, byte [edi]
cmp eax, ecx
mov byte [ebp + 0x26], 0
jge 0x301b97e2
sub ecx, eax
mov ebx, dword [ebp + 0xc]
movsx ebx, byte [ebp + ebx + 0x28]
cmp dword [ebp], ebx
jl 0x301b97dc
mov byte [ebp + 0x26], 1
inc dword [ebp + 0xc]
dec ecx
jne 0x301b97cb
movzx ecx, byte [edi]
cmp eax, ecx
mov dword [ebp + 0x20], eax
jge 0x301b991f
mov edi, dword [ebp + 0x18]
fld dword [edi]
mov ebx, eax
sub ebx, dword [ebp - 8]
fst dword [ebp - 0x10]
sub ecx, eax
mov eax, dword [ebp - 0x10]
lea edi, [ebp + edx*4 - 0x3f8]
lea ebx, [ebp + ebx*4 - 0x4f8]
mov dword [ebp - 0x20], ebx
rep stosd dword es:[edi], eax
movzx eax, byte [ebp + 0x1e]
cmp dword [ebp + 0x20], eax
jl 0x301b982c
inc byte [ebp + 0x27]
movzx eax, byte [ebp + 0x27]
mov al, byte [eax + esi + 0x6b]
mov byte [ebp + 0x1e], al
cmp dword [ebp + 0x7c], 0
je 0x301b983f
mov ecx, dword [ebp - 0x20]
xor eax, eax
cmp byte [ebp + 0x26], al
sete al
mov dword [ecx], eax
movzx edi, byte [ebp + 0x27]
fldz
mov ebx, dword [ebp - 0x28]
mov eax, edx
shl eax, 2
cmp byte [ebp + 0x26], 0
lea ecx, [ebp + eax - 0x278]
fstp dword [ecx]
fld dword [ebx + edi*4]
fstp dword [ebp + 4]
fld dword [ebp + eax - 0x338]
fadd dword [0x30235950]
fld st(1)
fmul dword [ebp + 4]
fld dword [ebp + 4]
fadd dword [0x30235950]
fstp dword [ebp + 4]
fld1
fdiv dword [ebp + 4]
fst dword [ebp - 0x10]
fmul st(1)
fstp dword [ebp + eax - 0x1b8]
je 0x301b98ee
fld dword [ebp + 4]
fmul st(2)
fdivr st(1)
fstp dword [ebp + eax - 0xf8]
movsx eax, byte [ebp + edx + 0x28]
cmp dword [ebp], eax
fstp st(0)
fstp st(0)
jl 0x301b9906
fld dword [ebp - 0x10]
fmul st(1)
fstp dword [ecx]
jmp 0x301b9906
push dword [ebp + 0x7c]
movzx edx, byte [ebp + 0x26]
movzx ecx, byte [ebp + 0x27]
movzx eax, al
lea edi, [ebp - 0x338]
push edi
push eax
push edx
push dword [ebp + 0x74]
mov dword [ebp - 0x18], eax
movzx eax, byte [ecx + esi]
push dword [ebp + 0x70]
mov ecx, dword [esi + ecx*4 + 0x18]
mov dword [ebp + 8], edx
call fcn.3008862e
add esp, 0x18
jmp 0x301b977e
cmp dword [ebp - 4], 0
fstp st(0)
jne 0x301b98f9
fmul dword [ebp + 4]
fld st(1)
fdiv st(1)
fstp dword [ebp + eax - 0xf8]
fstp st(0)
mov edi, dword [ebp - 0x14]
movzx eax, byte [edi]
add dword [ebp - 0x20], 4
inc edx
inc dword [ebp + 0x20]
cmp dword [ebp + 0x20], eax
jl 0x301b9815
fstp st(0)
add dword [ebp + 0x18], 4
inc edi
dec dword [ebp + 0x14]
mov dword [ebp - 0x14], edi
jne 0x301b97ba
movzx eax, byte [esi + 0x13]
test eax, eax
jle 0x301b9a89
lea ecx, [esi + 7]
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x20]
fld1
movzx edx, byte [ecx]
fld1
movzx eax, byte [ecx - 1]
jmp 0x301b996a
fadd dword [ebp + eax*4 - 0x3f8]
inc eax
fstp st(2)
fld st(0)
fadd dword [ebp + eax*4 - 0x33c]
fstp st(1)
cmp eax, edx
fld st(1)
jl 0x301b9955
fdiv st(1)
fmul dword [ebp - 0x34]
fstp st(1)
fcom dword [0x30262958]
fnstsw ax
test ah, 0x41
jne 0x301b998c
fstp st(0)
fld dword [0x30262958]
movzx edi, byte [ecx - 1]
cmp edi, edx
jge 0x301b99b8
lea ecx, [ebp + edi*4 - 0xf8]
fcom dword [ecx]
fnstsw ax
test ah, 5
jp 0x301b99b5
fld st(0)
lea eax, [ebp + edi*4 - 0x1b8]
fdiv dword [ecx]
fmul dword [eax]
fstp dword [eax]
fst dword [ecx]
inc edi
jmp 0x301b9990
mov eax, dword [ebp + 0x20]
fstp st(0)
movzx ebx, byte [eax - 1]
fldz
cmp ebx, edx
jge 0x301b9a21
mov ecx, ebx
shl ecx, 2
fld dword [ebp + ecx - 0xf8]
lea edi, [ebp + ecx - 0x278]
fmul dword [ebp + ecx - 0x338]
faddp st(1)
fld dword [0x302708d4]
fld dword [edi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x301b99fa
fld st(0)
fadd dword [edi]
jmp 0x301b9a09
cmp dword [ebp - 4], 0
jne 0x301b9a0b
fld st(0)
fadd dword [ebp + ecx - 0x1b8]
fstp st(1)
inc ebx
cmp ebx, edx
jl 0x301b99c7
fld dword [0x302708d4]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x301b9a29
fstp st(0)
fld dword [0x30262948]
fld st(1)
fdiv st(1)
fstp st(2)
fstp st(0)
fcom dword [0x30262954]
fnstsw ax
test ah, 0x41
jne 0x301b9a46
fstp st(0)
fld dword [0x30262954]
mov eax, dword [ebp + 0x20]
movzx ecx, byte [eax - 1]
cmp ecx, edx
jge 0x301b9a7b
fld st(0)
lea eax, [ebp + ecx*4 - 0xf8]
fmul dword [eax]
fstp dword [eax]
lea eax, [ebp + ecx*4 - 0x278]
fld st(0)
fmul dword [eax]
fstp dword [eax]
lea eax, [ebp + ecx*4 - 0x1b8]
inc ecx
fld st(0)
fmul dword [eax]
fstp dword [eax]
jmp 0x301b9a4d
inc dword [ebp + 0x20]
fstp st(0)
dec dword [ebp + 0x14]
jne 0x301b9945
xor ebx, ebx
cmp dword [ebp + 0x7c], ebx
je 0x301b9aba
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x4f8]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*4]
push eax
mov eax, dword [ebp + 0x10]
call fcn.301b8bd0
add esp, 0x10
cmp dword [ebp + 0x10], ebx
jle 0x301b9b02
push ecx
lea edi, [ebp + ebx*4 - 0x278]
fld dword [edi]
push ecx
fstp qword [esp]
call fcn.300d2ff5
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0xf8]
fld dword [edi]
fstp qword [esp]
call fcn.300d2ff5
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0x1b8]
fld dword [edi]
fstp qword [esp]
call fcn.300d2ff5
inc ebx
fstp dword [edi]
cmp ebx, dword [ebp + 0x10]
pop ecx
pop ecx
jl 0x301b9abf
mov edi, dword [ebp + 0x64]
xor edx, edx
cmp dword [edi + 8], edx
je 0x301b9b3a
xor ecx, ecx
cmp dword [ebp + 0x10], edx
jle 0x301b9b37
mov ebx, dword [edi + 4]
mov eax, ecx
shl eax, 2
fld dword [ebp + eax - 0x1b8]
inc ecx
cmp ecx, dword [ebp + 0x10]
fstp dword [eax + ebx]
mov ebx, dword [edi]
fld dword [ebp + eax - 0xf8]
fstp dword [eax + ebx]
jl 0x301b9b13
mov dword [edi + 8], edx
mov eax, dword [ebp - 0x18]
cmp dword [ebp + 8], eax
jge 0x301b9c1c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x70]
mov eax, ecx
sub eax, ecx
mov dword [ebp + 8], eax
lea eax, [eax*4 + 0x302615d0]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x74]
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
sub eax, ecx
lea ebx, [edx + ecx*4]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x7c], 0
je 0x301b9baf
mov edx, dword [ebp - 8]
mov ecx, dword [ebx]
lea eax, [edi + 0xc]
push eax
push dword [ebp - 4]
lea eax, [edi + 0x20]
push dword [ebp + 0x10]
push edx
push eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0xf8]
push eax
mov eax, edx
shl eax, 2
add ecx, eax
lea eax, [ebp - 0x278]
call fcn.3008862e
add esp, 0x1c
jmp 0x301b9c09
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0xc]
jge 0x301b9bbe
mov eax, dword [ebp + 0x18]
fld dword [eax]
jmp 0x301b9bc0
fldz
lea eax, [edi + 0xc]
push eax
push dword [ebp - 4]
lea eax, [edi + 0x20]
push ecx
mov ecx, dword [ebp - 8]
fstp dword [esp]
push dword [ebp + 0x10]
push ecx
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + ebx]
push dword [edi + 4]
mov eax, ecx
push dword [edi]
shl eax, 2
add edx, eax
push edx
mov edx, dword [ebx]
add edx, eax
lea ecx, [ebp - 0xf8]
call fcn.3008862e
add esp, 0x2c
inc dword [ebp + 8]
add dword [ebp + 0x18], 4
add ebx, 4
dec dword [ebp + 0x14]
jne 0x301b9b70
mov ebx, dword [ebp + 0x10]
test ebx, ebx
mov ecx, dword [edi + 4]
mov edi, dword [edi]
lea edx, [ebp - 0x1b8]
lea eax, [ebp - 0xf8]
jle 0x301b9c50
mov dword [ebp - 0xc], ebx
mov ebx, dword [eax]
mov dword [edi], ebx
mov ebx, dword [edx]
mov dword [ecx], ebx
add edi, 4
add eax, 4
add ecx, 4
add edx, 4
dec dword [ebp - 0xc]
jne 0x301b9c37
movzx eax, byte [ebp + 0x1f]
inc dword [ebp]
cmp dword [ebp], eax
jl 0x301b9672
mov eax, dword [ebp + 0x6c]
movsx ecx, byte [eax + 0x11]
movzx eax, byte [ebp + 0x1f]
sub ecx, eax
mov eax, dword [ebp + 0x64]
neg ecx
sbb ecx, ecx
pop edi
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 0x58]
pop esi
pop ebx
call fcn.3022c9c7
add ebp, 0x5c
leave
ret