Function at 0x302151b9
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x554
mov eax, dword [0x303328c0]
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 + 0x302e8db8]
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.3021471b
movzx eax, byte [ebp + 0x1f]
and dword [ebp], 0
add esp, 0x14
test eax, eax
jle 0x30215840
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 0x3021528a
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 0x302152b4
mov ecx, dword [ebp + 0x64]
cmp edi, dword [ecx + 0x10]
je 0x302152b4
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 0x302152bf
and dword [ebp - 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [ebp + 0x68]
cmp byte [ecx + 0x19], 0
je 0x30215496
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 + 0x302e8de8]
jmp 0x30215357
cmp ecx, dword [ebp - 0x18]
fldz
jge 0x3021533c
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 0x30215310
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 0x30215334
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 0x3021530d
cmp dword [ebp + 0x7c], 0
je 0x30215346
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 0x302152f3
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 0x30215510
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 0x302153c2
sub ecx, eax
mov ebx, dword [ebp + 0xc]
movsx ebx, byte [ebp + ebx + 0x28]
cmp dword [ebp], ebx
jl 0x302153bc
mov byte [ebp + 0x26], 1
inc dword [ebp + 0xc]
dec ecx
jne 0x302153ab
movzx ecx, byte [edi]
cmp eax, ecx
mov dword [ebp + 0x20], eax
jge 0x302154ff
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 0x3021540c
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 0x3021541f
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 [0x3029673c]
fld st(1)
fmul dword [ebp + 4]
fld dword [ebp + 4]
fadd dword [0x3029673c]
fstp dword [ebp + 4]
fld1
fdiv dword [ebp + 4]
fst dword [ebp - 0x10]
fmul st(1)
fstp dword [ebp + eax - 0x1b8]
je 0x302154ce
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 0x302154e6
fld dword [ebp - 0x10]
fmul st(1)
fstp dword [ecx]
jmp 0x302154e6
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.30214954
add esp, 0x18
jmp 0x3021535e
cmp dword [ebp - 4], 0
fstp st(0)
jne 0x302154d9
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 0x302153f5
fstp st(0)
add dword [ebp + 0x18], 4
inc edi
dec dword [ebp + 0x14]
mov dword [ebp - 0x14], edi
jne 0x3021539a
movzx eax, byte [esi + 0x13]
test eax, eax
jle 0x30215669
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 0x3021554a
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 0x30215535
fdiv st(1)
fmul dword [ebp - 0x34]
fstp st(1)
fcom dword [0x302ea160]
fnstsw ax
test ah, 0x41
jne 0x3021556c
fstp st(0)
fld dword [0x302ea160]
movzx edi, byte [ecx - 1]
cmp edi, edx
jge 0x30215598
lea ecx, [ebp + edi*4 - 0xf8]
fcom dword [ecx]
fnstsw ax
test ah, 5
jp 0x30215595
fld st(0)
lea eax, [ebp + edi*4 - 0x1b8]
fdiv dword [ecx]
fmul dword [eax]
fstp dword [eax]
fst dword [ecx]
inc edi
jmp 0x30215570
mov eax, dword [ebp + 0x20]
fstp st(0)
movzx ebx, byte [eax - 1]
fldz
cmp ebx, edx
jge 0x30215601
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 [0x302fd40c]
fld dword [edi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x302155da
fld st(0)
fadd dword [edi]
jmp 0x302155e9
cmp dword [ebp - 4], 0
jne 0x302155eb
fld st(0)
fadd dword [ebp + ecx - 0x1b8]
fstp st(1)
inc ebx
cmp ebx, edx
jl 0x302155a7
fld dword [0x302fd40c]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x30215609
fstp st(0)
fld dword [0x302ea150]
fld st(1)
fdiv st(1)
fstp st(2)
fstp st(0)
fcom dword [0x302ea15c]
fnstsw ax
test ah, 0x41
jne 0x30215626
fstp st(0)
fld dword [0x302ea15c]
mov eax, dword [ebp + 0x20]
movzx ecx, byte [eax - 1]
cmp ecx, edx
jge 0x3021565b
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 0x3021562d
inc dword [ebp + 0x20]
fstp st(0)
dec dword [ebp + 0x14]
jne 0x30215525
xor ebx, ebx
cmp dword [ebp + 0x7c], ebx
je 0x3021569a
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.302147b0
add esp, 0x10
cmp dword [ebp + 0x10], ebx
jle 0x302156e2
push ecx
lea edi, [ebp + ebx*4 - 0x278]
fld dword [edi]
push ecx
fstp qword [esp]
call fcn.3002e000
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0xf8]
fld dword [edi]
fstp qword [esp]
call fcn.3002e000
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0x1b8]
fld dword [edi]
fstp qword [esp]
call fcn.3002e000
inc ebx
fstp dword [edi]
cmp ebx, dword [ebp + 0x10]
pop ecx
pop ecx
jl 0x3021569f
mov edi, dword [ebp + 0x64]
xor edx, edx
cmp dword [edi + 8], edx
je 0x3021571a
xor ecx, ecx
cmp dword [ebp + 0x10], edx
jle 0x30215717
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 0x302156f3
mov dword [edi + 8], edx
mov eax, dword [ebp - 0x18]
cmp dword [ebp + 8], eax
jge 0x302157fc
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 + 0x302e8dd8]
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 0x3021578f
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.30214a1c
add esp, 0x1c
jmp 0x302157e9
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0xc]
jge 0x3021579e
mov eax, dword [ebp + 0x18]
fld dword [eax]
jmp 0x302157a0
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.30214e90
add esp, 0x2c
inc dword [ebp + 8]
add dword [ebp + 0x18], 4
add ebx, 4
dec dword [ebp + 0x14]
jne 0x30215750
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 0x30215830
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 0x30215817
movzx eax, byte [ebp + 0x1f]
inc dword [ebp]
cmp dword [ebp], eax
jl 0x30215252
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.3028e0e3
add ebp, 0x5c
leave
ret